1
私は$in
と$addToSet
を使ってコレクションの配列を更新しています。私はこの種の書類を持っていると言います。
{
_id: objectId(1), //this is just an example id
names: ['harry', 'hermione']
},
{
_id: objectId(2),
names: ['ron']
},
{
_id: objectId(3),
names: ['dumbledoor']
}
私は、IDS
var arr_ids = [1, 2];
と、このように配列map
を使うの配列を持っているので、この文書のすべてを更新します。
var ids = arr_ids.map(function(id) { return mongoose.Types.ObjectId(id); });
マイコレクション内のすべてのドキュメントを更新します。
db.update({ _id: { $in: ids } }, { $addToSet: { name : 'draco' } },
function(err, results) {
if(err) console.log(err);
console.log(results);
}
);
は私が$in
と$addToSet
使用して、それが動作し、文書を更新しますが、それは最後のドキュメントが更新されます。
{
_id: objectId(1), //this is just an example id
names: ['harry', 'hermione']
},
{
_id: objectId(2),
names: ['ron', 'draco'] // it only update this document.
},
{
_id: objectId(3),
names: ['dumbledoor']
}
私はその理由を知りません。私は個別に更新するためのforループを作成したくないですが、それは私の最後の手段です。私を助けてください。ありがとう!