MyCouch(CouchDB)Visual Studio基础知识(文档删除和JSON序列化)



我正试图使用Visual Studio和CouchDB构建一个通信协议,但是,我在一些非常基本的概念上遇到了问题,myCouch git还远不清楚。我想知道如何删除给定数据库名称的文档,以及如何将从服务器接收的JSON转换为可用代码。

这是迄今为止我的C#代码

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
class Program
{
static async Task MainAsync()
{
using (var db = new MyCouch.MyCouchStore("http://UserName:Password@127.0.0.1:5984/", "patientsim"))
{
var json = await db.GetByIdAsync("1");
Console.Write(json);
}
}
static void Main(string[] args)
{
MainAsync().Wait();
}
}
}

来自CouchDB文档:

如果你想更改CouchDB中的文档,你不会告诉它去并在特定文档中找到一个字段并插入一个新值。相反,您从CouchDB中加载完整的文档,进行更改在JSON结构(或对象)中编程),并保存该版本的整个新修订版(或版本)文档返回到CouchDB中每个修订都由一个新的_rev标识值

如果您想更新或删除文档,CouchDB希望您包括要更改的修订的_rev字段。

这是一种避免覆盖其他人更新的方法。

因此,要删除文档,您首先需要加载以下内容:

var myDoc = await store.GetByIdAsync(docId);

然后使用文档Rev属性将其删除:

var deleted = await store.DeleteAsync(docId, myDoc.Rev);

因此,除了Id属性外,文档模型还必须具有Rev特性。

根据文档,您的模型的Rev属性可以命名为:

  • [EntityName]修订版
  • DocumentRev
  • EntityRev
  • Rev

最新更新