按成员选择阵列中的文档

时间:2015-04-13 04:51:10

标签: mongodb

我有一个名为Conversations的Mongo集合,其架构如下:

{
    "_id" : "string",
    "participants" : [ "strings", "..." ],
    "messages" : [
        {
            "_id" : "string",
            "message" : "contents of the message",
            "sent" : "date sent",
            "read" : false
        }, ...
    ]
}

使用Conversations._id值和Conversations.messages[?]._id值,我需要能够更新该消息的read字段。 Conversations.messages._id值在所有邮件文档中都是唯一的。

我一直在做一些研究,而且我会相信我应该使用某种类型的聚合?我是否在正确的轨道上?

1 个答案:

答案 0 :(得分:1)

要更新Mongo嵌套数组字段,请检查此mongo update 以下查询将更新messages.read

db.converstaion.update({"_id" :"youstringId","messages":{"$elemMatch":{"_id":"msg string id"}}},
                       {"$set":{"messages.$.read":true}})