如何更新pouchDB文档中的单个字段

乔伊

我使用“ _id”,“名称”和“状态”字段创建一个pouchDB文档。但是,我发现如果我想更新文档的“状态”字段,那么我还需要指定所有我没有更改的其他字段,否则它们将被删除。也就是说,如果我在更新时未指定“名称”字段,则文档上将不再有“名称”字段。

function createFriendSchedule(friend){

  pouchDB.put({

    _id : friend['id'],
    name : friend['name'],
    status: "new"

  }, function(err, response){

    createAndDispatchEvent("friend Schedule created");

  });


}

这是用于更新文档的代码

function changeFriendStatus(friend){

  pouchDB.get(friend['id'], function(err, retrieved){

    pouchDB.put({

      _id : friend['id'],
      _rev : retrieved._rev, //need to specify _rev otherwise conflict will occur
      name : retrieved.name, //if you don't specify name should remain the samme as before, then it will be left off the record!
      status : friend['status']

    }, function(err, response){

      if(err){  

    console.log("COULDN'T CHANGE FRIEND STATUS");

      } else {  createAndDispatchEvent("friend status changed") }

    });


  });

}

这是用于提取记录的代码

  window.pouchDB.query(
    {map : map}, 
    {reduce : false}, 
    function(err, response){

      var responseRows = response['rows'];
      var cleanedList = [];
      _.each(responseRows, function(friend){    

    cleanedList.push({'_id' : friend['key'][0], 'name' : friend['key'][1], 'status' : friend['key'][2] });

      });
      window.reminderList = cleanedList;
      console.log(window.reminderList);
      createAndDispatchEvent("Returned reminder list");

    });

如果我在更新时未指定“名称”字段,则pouchDB.query中的embed()调用返回的数组将包含一个空值,而我希望其中是“名称”值。

劳森

CouchDB和PouchDB的设计方式使得文档是原子的。因此,的确,如果要更新单个字段,则必须更新put()整个文档。

在您的示例中,简化此操作的一种方法是retreived直接使用该值,而不是创建新对象并手动复制字段。您还可以将您的文档分为多个具有多种类型的小文档,而不是一个必须经常读取和重写的大文档。

您可能还需要考虑使用allDocs而不是query,因为如果您只需要按ID提取文档,则通常速度会更快。PouchDB博客对分页和索引可帮助这里的几篇文章。

编辑:现在有一个pouchdb-upsert插件,可以更轻松地更新单个字段。在引擎盖下,它只是执行一个put()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何更新多个 solr 文档中的单个字段值

来自分类Dev

ouchdb文档更新处理程序单个字段

来自分类Dev

如何从mongodb中的嵌套嵌入式文档中查询和返回单个字段?

来自分类Dev

mongodb $ lookup数组子文档中的单个字段

来自分类Dev

AngularFire:如何对$ firebaseArray中的项目应用部分更新(单个字段)?

来自分类Dev

C#MongoDb-如何更新嵌套文档中的一个字段?

来自分类Dev

Spring mongodb 如果单个字段在文档中的列表中匹配,则查找文档

来自分类Dev

在Cloud Firestore中创建另一个字段时,如何更新文档中的字段?

来自分类Dev

使用ObjectDataSource更新GridView中单个字段的数据?

来自分类Dev

使用 Haskell @ 更新记录中的单个字段

来自分类Dev

弹性搜索在单个查询请求中更新多个字段

来自分类Dev

Java + MongoDB:更新文档中的多个字段

来自分类Dev

如何更新mongodb中的文档字段?

来自分类Dev

Mongo C#-更新单个字段(如果未插入文档)

来自分类Dev

如何从 Laravel 5.2 中的表中检索单个字段

来自分类Dev

如何在mongodb中的单个文档中更新嵌套对象(即具有对象类型的doc字段)

来自分类Dev

如何在mysql的单个字段中插入多个值

来自分类Dev

如何断言错误类型中的单个字段?

来自分类Dev

如何在Blazor EditForm中验证单个字段?

来自分类Dev

如何在Java中从MongoDB检索单个字段

来自分类Dev

如何在子文档的每个字段中搜索

来自分类Dev

如何在子文档的每个字段中搜索

来自分类Dev

如何在PostgreSQL中的单个SQL语句中更新一个字段并取回整个实体?

来自分类Dev

如何使用Mongoclient更新单个文档的嵌入式文档列表字段?

来自分类Dev

单个查询以查找某个字段中具有最大价值的文档

来自分类Dev

单个查询以查找某个字段中具有最大价值的文档

来自分类Dev

使用 EF 更新单个字段

来自分类Dev

如何真正删除pouchDb中的文档?

来自分类Dev

删除字段并更新文档中的另一个字段

Related 相关文章

  1. 1

    如何更新多个 solr 文档中的单个字段值

  2. 2

    ouchdb文档更新处理程序单个字段

  3. 3

    如何从mongodb中的嵌套嵌入式文档中查询和返回单个字段?

  4. 4

    mongodb $ lookup数组子文档中的单个字段

  5. 5

    AngularFire:如何对$ firebaseArray中的项目应用部分更新(单个字段)?

  6. 6

    C#MongoDb-如何更新嵌套文档中的一个字段?

  7. 7

    Spring mongodb 如果单个字段在文档中的列表中匹配,则查找文档

  8. 8

    在Cloud Firestore中创建另一个字段时,如何更新文档中的字段?

  9. 9

    使用ObjectDataSource更新GridView中单个字段的数据?

  10. 10

    使用 Haskell @ 更新记录中的单个字段

  11. 11

    弹性搜索在单个查询请求中更新多个字段

  12. 12

    Java + MongoDB:更新文档中的多个字段

  13. 13

    如何更新mongodb中的文档字段?

  14. 14

    Mongo C#-更新单个字段(如果未插入文档)

  15. 15

    如何从 Laravel 5.2 中的表中检索单个字段

  16. 16

    如何在mongodb中的单个文档中更新嵌套对象(即具有对象类型的doc字段)

  17. 17

    如何在mysql的单个字段中插入多个值

  18. 18

    如何断言错误类型中的单个字段?

  19. 19

    如何在Blazor EditForm中验证单个字段?

  20. 20

    如何在Java中从MongoDB检索单个字段

  21. 21

    如何在子文档的每个字段中搜索

  22. 22

    如何在子文档的每个字段中搜索

  23. 23

    如何在PostgreSQL中的单个SQL语句中更新一个字段并取回整个实体?

  24. 24

    如何使用Mongoclient更新单个文档的嵌入式文档列表字段?

  25. 25

    单个查询以查找某个字段中具有最大价值的文档

  26. 26

    单个查询以查找某个字段中具有最大价值的文档

  27. 27

    使用 EF 更新单个字段

  28. 28

    如何真正删除pouchDb中的文档?

  29. 29

    删除字段并更新文档中的另一个字段

热门标签

归档