mra*_*o21 16 upsert mongodb node.js
我正在编写一个对关键字进行评分的小应用程序.因此,如果"贝鲁特"和"教育"进入,如果以前没有见过,我想创建一个mongo条目,并给他们1分.如果他们有,我想将他们的分数增加一.我试图用一个更新命令来做这个,但我想我可能做错了.
rankingdb.update(
{keyword:key},
{keyword:key, {$inc:{score:1}}},
{upsert:true, safe:false},
function(err, data) {
if (err) {
console.log(err);
}
else {
console.log("score succeeded");
}
}
);
Run Code Online (Sandbox Code Playgroud)
SyntaxError: Unexpected token {
你能不能用增量创建一个全新的文档?
Joh*_*yHK 25
您的一般方法是正确的,但正如错误消息所示,您的代码中存在语法问题.
试试这个:
rankingdb.update(
{keyword: key},
{$inc: {score: 1}},
{upsert: true, safe: false},
function(err,data){
if (err){
console.log(err);
}else{
console.log("score succeded");
}
}
);
Run Code Online (Sandbox Code Playgroud)
当upsert需要创建一个新对象时,它会在创建对象时组合选择器(第一个参数)和更新对象(第二个参数)中的keyword
字段,因此您不需要在两者中都包含该字段.
请注意,update()
在2.0驱动程序中已弃用,因此您现在应该使用updateOne()
或updateMany()
.
归档时间: |
|
查看次数: |
20097 次 |
最近记录: |