首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MyCouch (CouchDB) Visual (文档删除和JSON序列化)

MyCouch (CouchDB) Visual (文档删除和JSON序列化)
EN

Stack Overflow用户
提问于 2017-01-17 22:37:48
回答 1查看 912关注 0票数 0

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

这是到目前为止我的C#代码

代码语言:javascript
复制
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();
        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-26 17:15:57

来自CouchDB文档:

如果要在CouchDB中更改文档,则不要告诉它去查找特定文档中的字段并插入一个新值。相反,从CouchDB加载完整文档,在执行实际编程时对JSON结构(或对象)进行更改,并将该文档的整个新版本(或版本)保存回CouchDB中。每个修订都由一个新的_rev值.标识。 如果要更新或删除文档,CouchDB希望您包含要更改的修订版的_rev字段。

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

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

代码语言:javascript
复制
var myDoc = await store.GetByIdAsync(docId);

然后使用document属性删除它:

代码语言:javascript
复制
var deleted = await store.DeleteAsync(docId, myDoc.Rev);

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

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

  • EntityNameRev
  • DocumentRev
  • EntityRev
  • 雷夫
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41708292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档