node.js プログラムから mongoDB の配列を更新しようとしています。node.js 内から配列を変更することはできますが、変更を保存することはできません。
私は何か非常に間違ったことをしていると思います。助けていただければ幸いです...
node.js プログラムから mongoDB の配列を更新しようとしています。node.js 内から配列を変更することはできますが、変更を保存することはできません。
私は何か非常に間違ったことをしていると思います。助けていただければ幸いです...
今はあなたを助けるのが少し遅れていることを知っていますが、新しいコホートが MongoDB University を通過するにつれて、他の人が恩恵を受ける可能性があります!
db.schools.update
をお読みくださいdb.students.update
。
@tymeJVの答えは残りを与えます:
$set
中括弧をラップします。{$set:{scores:zz}}
エラーをキャッチするコールバック関数を追加します。
db.collection( 'students' ).update (
{ _id : doc._id },
{ $set : { scores:zz } },
function( err, result ) {
if ( err ) throw err;
}
);
おかしなことに、私は今、まったく同じ課題をやっています! ドキュメントを読んで答えた別の問題がありましたが、グーグルでこの質問を見ました。私が誰かを助けたことを願っています!
問題を解決するには、次のコードを実行する必要があると思います
var lowScore = 9999.9;
for ( var i=0; i<doc.scores.length; i++ ) {
if ( doc.scores[i].type == "homework"
&& doc.scores[i].score < lowScore ) {
lowScore = doc.scores[i].score;
}
}
次に、次のクエリを使用してコレクションを更新します
collection.update({ "_id":doc._id },
{ $pull : { "scores" : {
$and: [ {"type":"homework"}, { "score":lowScore} ]
} } },
{ "safe":true },
function( err, result ) {
if (err) {
console.log(err);
}
} // update callback
);
詳細については、 こちらを参照してください