キーワードを採点する小さなアプリケーションを書いています。したがって、「ベイルート」と「教育」が入力された場合、それらが以前に表示されたことがない場合は、モンゴエントリを作成し、スコアを1にします。ある場合は、スコアを1つ増やします。 。 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");
}
}
);
SyntaxError: Unexpected token {
増分で新しいドキュメントを作成できませんか?
一般的なアプローチは正しいですが、エラーメッセージが示すように、コードに構文上の問題があります。
代わりにこれを試してください:
_rankingdb.update(
{keyword: key},
{$inc: {score: 1}},
{upsert: true, safe: false},
function(err,data){
if (err){
console.log(err);
}else{
console.log("score succeded");
}
}
);
_
アップサートが新しいオブジェクトを作成する必要がある場合、オブジェクトの作成時にセレクター(最初のパラメーター)と更新オブジェクト(2番目のパラメーター)のフィールドを組み合わせるため、両方にkeyword
フィールドを含める必要はありません。 。
update()
は2.0ドライバーで非推奨になっているため、updateOne()
またはupdateMany()
のいずれかを使用する必要があることに注意してください。