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