MongoDB:如何更新集合中的整个文档

3天

在我的应用程序中,我需要编辑一个文档...,并且在编辑文档时,当前[未更改]版本应仍可供其他用户使用。例如,当我开始编辑文档时,会在一个单独的集合中创建它的新副本,完成后,我用临时集合的新版本替换当前版本。

假设存储在collection中的原始文档users如下所示:

{
  "_id" : ObjectId("53b986e2fe000000019a5a13"),
  "name" : "Joe",
  "birthDate" : "2080-12-11",
  "publications" : [
    { "title" : "title 1", "description" : "description 1" },
    { "title" : "title 2", "description" : "description 2" }
  ]
}

然后,我们假设上面的文档被复制到另一个集合(例如users.wip)并进行了如下修改:

{
  "_id" : ObjectId("53b986e2fe000000019a5a13"),
  "name" : "Joe",
  "birthDate" : "1980-12-11",
  "publications" : [
    { "title" : "bye bye", "description" : "Blah blah" },
    { "title" : "title 2", "description" : "description 2" },
    { "title" : "title 3", "description" : "description 3" }
  ]
}

如何替换Whoe文件?问题是,当我尝试更新原始文档时,

{ "$set" : {
  "name" : "Joe",
  "birthDate" : "1980-12-11",
  "publications" : [
    { "title" : "bye bye", "description" : "Blah blah" },
    { "title" : "title 2", "description" : "description 2" },
    { "title" : "title 3", "description" : "description 3" }
  ]
}}

我总是收到以下错误消息:

10150  Field name duplication not allowed with modifiers

也就是说,更新整个文档的正确方法是什么?

香港强尼

要替换整个文档,您无需使用$set,而只需提供新文档即可update

db.test.update({"_id": ObjectId("53b986e2fe000000019a5a13")}, {
  "_id" : ObjectId("53b986e2fe000000019a5a13"),
  "name" : "Joe",
  "birthDate" : "1980-12-11",
  "publications" : [
    { "title" : "bye bye", "description" : "Blah blah" },
    { "title" : "title 2", "description" : "description 2" },
    { "title" : "title 3", "description" : "description 3" }
  ]
})

但是,对于当前的3.0驱动程序,最好改为使用replaceOne

db.test.replaceOne({"_id": ObjectId("53b986e2fe000000019a5a13")}, {
  "name" : "Joe",
  "birthDate" : "1980-12-11",
  "publications" : [
    { "title" : "bye bye", "description" : "Blah blah" },
    { "title" : "title 2", "description" : "description 2" },
    { "title" : "title 3", "description" : "description 3" }
  ]
})

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何更新MongoDB集合中的每个文档?

来自分类Dev

如何通过用mongoDB集合中的新文档替换文档来更新文档

来自分类Dev

更新MongoDB集合文档中的嵌套键值

来自分类Dev

如何计算mongodb集合中的文档数

来自分类Dev

如何在MeteorJS中更新MongoDB集合上的子文档数组

来自分类Dev

使用Java更新MongoDB中的特定字段而不是整个文档

来自分类Dev

如何使用文档ID从mongoDB集合中删除文档?

来自分类Dev

我想更新mongodb中集合中的文档

来自分类Dev

我们如何使用MongoDB Java驱动程序在MongoDB中追加/更新集合的子文档?

来自分类Dev

我们如何使用MongoDB Java驱动程序在MongoDB中追加/更新集合的子文档?

来自分类Dev

如何替换MongoDB中的整个子文档数组?

来自分类Dev

MongoDB:计算文档的平均值,然后在整个集合中执行相同的操作

来自分类Dev

MongoDB:计算文档的平均值,然后在整个集合中执行相同的操作

来自分类Dev

在mongodb集合中查找文档对

来自分类Dev

如何在mongodb中更新子文档

来自分类Dev

如何更新MongoDB文档中的数组元素

来自分类Dev

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

来自分类Dev

Spring Mongodb findandModify无法更新整个文档

来自分类Dev

更新 mongodb 中的集合

来自分类Dev

如何停止在mongodb集合中插入重复文档

来自分类Dev

我如何计算集合MongoDB Java中的文档

来自分类Dev

如何在MongoDB中的文档内部存储大量内部集合

来自分类Dev

如何使用AngularJS监听MongoDB中集合中的新文档

来自分类Dev

如何计算Phalcon MongoDB集合中的文档总数

来自分类Dev

在 mongodb 中,如何删除经过验证的集合文档字段/记录

来自分类Dev

如何在MongoDB中查询包括参考集合在内的整个集合?

来自分类Dev

如何使用mongojs遍历整个MongoDB集合?

来自分类Dev

如何使用mongojs遍历整个MongoDB集合?

来自分类Dev

如何在MongoDB中的单个集合中找到文档之间的集合的交集?

Related 相关文章

  1. 1

    如何更新MongoDB集合中的每个文档?

  2. 2

    如何通过用mongoDB集合中的新文档替换文档来更新文档

  3. 3

    更新MongoDB集合文档中的嵌套键值

  4. 4

    如何计算mongodb集合中的文档数

  5. 5

    如何在MeteorJS中更新MongoDB集合上的子文档数组

  6. 6

    使用Java更新MongoDB中的特定字段而不是整个文档

  7. 7

    如何使用文档ID从mongoDB集合中删除文档?

  8. 8

    我想更新mongodb中集合中的文档

  9. 9

    我们如何使用MongoDB Java驱动程序在MongoDB中追加/更新集合的子文档?

  10. 10

    我们如何使用MongoDB Java驱动程序在MongoDB中追加/更新集合的子文档?

  11. 11

    如何替换MongoDB中的整个子文档数组?

  12. 12

    MongoDB:计算文档的平均值,然后在整个集合中执行相同的操作

  13. 13

    MongoDB:计算文档的平均值,然后在整个集合中执行相同的操作

  14. 14

    在mongodb集合中查找文档对

  15. 15

    如何在mongodb中更新子文档

  16. 16

    如何更新MongoDB文档中的数组元素

  17. 17

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

  18. 18

    Spring Mongodb findandModify无法更新整个文档

  19. 19

    更新 mongodb 中的集合

  20. 20

    如何停止在mongodb集合中插入重复文档

  21. 21

    我如何计算集合MongoDB Java中的文档

  22. 22

    如何在MongoDB中的文档内部存储大量内部集合

  23. 23

    如何使用AngularJS监听MongoDB中集合中的新文档

  24. 24

    如何计算Phalcon MongoDB集合中的文档总数

  25. 25

    在 mongodb 中,如何删除经过验证的集合文档字段/记录

  26. 26

    如何在MongoDB中查询包括参考集合在内的整个集合?

  27. 27

    如何使用mongojs遍历整个MongoDB集合?

  28. 28

    如何使用mongojs遍历整个MongoDB集合?

  29. 29

    如何在MongoDB中的单个集合中找到文档之间的集合的交集?

热门标签

归档