我是新来的MongoDB等强调,因为MongoDB的文件不全的离开我试错......可悲的是,我所有的努力都没有,没有错误的工作,使我感到困惑的是什么情况,什么调试...
我只需要符合特定标准的数据库上更新多条记录,并为不存在的记录,创造了新的条目。 我相信我能与更新,更新插入,多一个单一的数据库访问做。 下面是我想出:
dbschema.Person.update( { person_id: { $in: ["734533604" ,"701084015"] } }, { $set: {"scores": 1200} }, { options: { upsert: true, multi: true } } );
我也尝试过多种组合,甚至是旧版本,例如:
dbschema.Person.update( { person_id: { $in: ["734533604" ,"701084015"] } }, { $set: {"scores": 1200} }, { upsert: true }, { multi: true } );
他们没有工作...
请帮我这个那么微不足道的东西...我可以很容易地做到这一点在SQL,但NoSQL的啄如此限制对我..谢谢!
编辑:
上找到相同的查询工作完美:
dbschema.Person.find( { person_id: { $in: ["734533604" ,"701084015"] } }, function ( err, results ) {
console.log( 'result: ' + results );
console.log( 'error: ' + err );
console.log( 'result length: ' + results.length );
} );
编辑:
我期待将要创建的“未找到”的记录,而找到的记录进行更新。 我的逻辑可能存在缺陷,我现在这么多的困惑。
本来我是觉得() - 一次荷兰国际集团的一个记录,更改值,并呼吁保存()对于每个修改的记录,但是当我部署到生活,响应时间成为几百时间有一个较慢尤其是当几百记录要对每个请求更新。
然后我发现找到()+ $的,而且性能被恢复,比以前还要好时(查询),但更新仍然太慢。所以,现在我想办法在一个查询更新所有文件。 。
我通常做的SQL中使用更新时,CASE THEN ...例如:
UPDATE person SET score = CASE
WHEN person_id = "734533604" THEN 1200
WHEN person_id = "701084015" THEN 1200
ELSE
score
END