【发布时间】:2014-10-16 02:56:51
【问题描述】:
我有一个与 Angular 应用程序通信的 NodeJS 应用程序。这是一个简化版本,但我会尝试解释我的问题:
我会从socket连接中获取一个值,例如:
{
Id : "1",
Checked : true,
TeamName : "Team1"
}
我想用 mongoose 更新 mongoDb,以便每个具有 TeamName : "Team1" 的人都获得值 Checked : true。
我做过这样的事情:
relayModel.find({TeamName : 'Team1'},
{'$set' :{Checked: true}},function(err,docs){
if(err){
console.log("Could not save value for relay runner: ", err);
}
else{
console.log("The runners updated: ",docs)
}
但我得到了错误:
Could not save value for relay runner:
{ [MongoError: Can't canonicalize query:
BadValue Unsupported projection option:
$set: { Checked: true }] name: 'MongoError' }
【问题讨论】:
-
你想要
.update()而不是.find() -
只更新一个人。我想更新所有具有相同团队名称的人。
-
嗯。您是否查看过“多”选项的文档?我猜不会。这就是为什么我说
.update()而不是猫鼬中的“查找和更新”品种之一。 -
谢谢! relayModel.update({TeamName : 'Team1'}, {Checked: true},{multi:true},function(err,nbr, docs){ if(err){ console.log("无法保存中继赛跑者的值: ", err); } else{ console.log("跑步者更新:",docs) }
标签: javascript angularjs node.js mongodb mongoose