Mongodb,concat在一个查询中更新更新

有一种方法可以连接更多更新? 例如,我想在同一个元素中更改更多的值。 所以有这个...

{
    cc: [
          { user_id: "1", hasSeen:true}
         ,{ user_id: "2", hasSeen:false}
         ,{ user_id: "3", hasSeen:false}

    ]
    ,conversation: [{
        user_id: "1",
        text: "message by 1, to 2and3"
    }]
}

...我想推新的对话对象并改变所有hasSeen值。

为了做第一点,没问题,我只推新的对话对象。 它的工作原理...

    ...update(
        { _id : _param.conversation_id }
        ,{ $push:{ conversation:{user_id:"2",text:"message by 2, to 1,3"} }}
    )
    .exec(function(err, numAffected, rawResponse) {
    });

但我也想同时改变三个“hasSeen”值。 可能吗? 我可以用一个查询来完成吗? 或者我应该把它分成两个查询?

ps:我用猫鼬。


目前位置操作符(我认为您将在此处需要)不能以这种方式工作,您可以执行一种条件更新,从而遍历$inc s或$set s列表来更改这些子文档值。

有一个JIRA可以帮助你:https://jira.mongodb.org/browse/SERVER-6566?page=com.atlassian.jira.plugin.system.issuetabpanels:changehistory-tabpanel,但它是根据“我们不确定的特征”提交。

现在最好把它分开。

链接地址: http://www.djcxy.com/p/61947.html

上一篇: Mongodb, concat more updates in one query

下一篇: Bitwise enum (flags) query using MongoDB's official C# driver