Основы 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();
        }
    }
}

1 ответ

  1. Из документации CouchDB:

    Если вы хотите изменить документ в CouchDB, не говорите ему идти
    и найти поле в определенном документе и вставить новое значение.
    Вместо этого вы загружаете полный документ из CouchDB, вносите изменения
    в структуре JSON (или объект, когда вы делаете фактический
    программирование), и сохранить всю новую редакцию (или версию) этого
    документ обратно в CouchDB. Каждая ревизия определяется новым _rev
    значение.

    Если вы хотите обновить или удалить документ, CouchDB ожидает, что вы
    включите поле _rev в редакцию, которую вы хотите изменить.

    Это способ избежать перезаписи чужих обновлений.

    Таким образом, чтобы удалить документ, вам сначала нужно загрузить его с:

    var myDoc = await store.GetByIdAsync(docId);
    

    Затем используйте свойство Rev документа для его удаления:

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

    Поэтому необходимо, чтобы модель документа имела свойство Rev в дополнение к свойству Id.

    Согласно документации, свойство Rev ваших моделей может быть названо:

    • [EntityName]Rev
    • DocumentRev
    • EntityRev
    • Оборот