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

时间:2017-01-17 22:37:48

标签: c# json visual-studio couchdb

我正在尝试使用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();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

来自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 属性。

According the documentation模型的 Rev 属性可以命名为:

  • [EntityName] Rev
  • DocumentRev
  • EntityRev