我如何针对authors数组中的子文档(如下所示)进行更新?

collection.update({'_id': "4f44af6a024342300e000001"}, {$set: { 'authors.?' }} )

该文件:
{
    _id:     "4f44af6a024342300e000001",
    title:   "A book",
    created: "2012-02-22T14:12:51.305Z"
    authors: [{"_id":"4f44af6a024342300e000002"}]
}

最佳答案

通过指定嵌入文档的实际位置,如下所示:

// update _id field of first author
collection.update({'_id': "4f44af6a024342300e000001"},
                  {$set: { 'authors.0._id': "1" }} )

或通过positional operator:
// update _id field of first matched by _id author
collection.update({'_id': "4f44af6a024342300e000001",
                    //you should specify query for embedded document
                    'authors._id' : "4f44af6a024342300e000002" },
     // you can update only one nested document matched by query
                    {$set: { 'authors.$._id': "1" }} )

关于mongodb - 更新mongodb中的子文档?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9401668/

10-11 17:36