有一种方法可以连接更多更新吗? 例如,我想在同一元素中更改更多值。所以有这个......
{
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:我用的是猫鼬。
答案 0 :(得分:0)
目前位置运算符(我认为你在这里需要)不会以这样一种方式工作,你可以进行一种条件更新,你可以迭代$inc
或{{1}的列表}更改这些子文档值。
对于这样的事情,有一个JIRA可能对你有所帮助:https://jira.mongodb.org/browse/SERVER-6566?page=com.atlassian.jira.plugin.system.issuetabpanels:changehistory-tabpanel但它是在“我们不确定的功能”下提交的。
最好将此分开。