数组 – MongoDB:如何更新数组中的单个子元素,由数组中的索引引用?

我试图更新一个单个子元素包含在mongodb文档中的数组。我想使用它的数组索引引用字段。 (数组中的元素没有任何字段,我可以保证将是唯一标识符。)似乎像这应该很容易做,但我不能弄清楚语法。

这里是我想在pseudo-json中做的。

之前:

{
  _id : ...,
  other_stuff ... ,
  my_array : [
    { ... old content A ... },
    { ... old content B ... },
    { ... old content C ... }
  ]
}

后:

{
  _id : ...,
  other_stuff ... ,
  my_array : [
    { ... old content A ... },
    { ... NEW content B ... },
    { ... old content C ... }
  ]
}

看起来像查询应该是这样:(再次,伪代码)

db.my_collection.update(
  {_id: ObjectId(document_id), my_array.1 : 1 },
  {my_array.$.content: NEW content B }
)

但这不工作。我已经花了太长时间搜索mongodb文档,并尝试这种语法的不同变化(例如使用$ slice等)我找不到任何明确的解释如何在MongoDB中完成这种更新。请帮忙!

正如所料,查询很容易,一旦你知道如何。这里的语法,在python:

db["my_collection"].update(
    { "_id": ObjectId(document_id) },
    { "$set": { 'documents.'+str(doc_index)+'.content' : new_content_B}}
)
http://stackoverflow.com/questions/11372065/mongodb-how-do-i-update-a-single-subelement-in-an-array-referenced-by-the-inde

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:数组 – MongoDB:如何更新数组中的单个子元素,由数组中的索引引用?