私はマングース.find
クエリの後にこれを行います:
data2[0].videos[temp].markModified('fakeName');
data2[0].save(function(err,product,numberAffected){
if(err){
console.log("error saving manifest")
console.log(err);
var back={success:false, reason:err};
callback(back);
return;
}
if(numberAffected>=1){
console.log("manifest saved",product.videos[temp]);
var back={success:true};
callback(back);
return;
}else{
console.log("nothing saved");
callback({success:false});
return;
}
});
これを印刷する:
manifest saved { fakeName: 'devrenameTest',
name: 'bkdyZVb--',
version: 1,
dateCreated: 1406846165732,
dateUpdated: 1406846165732,
vidLoc: '[url removed]',
thumbLoc: '[url removed]',
author: '53a47a469c52c9d83a2d71d9',
_id: 53dac4d533c061dd0b000007,
sharedWithGroups: [],
sharedWith: [],
tags: [] }
それで、それは正しく機能したように見えますか?
しかし、自分のデータベースを見ると、videos
1 つのフィールドだけで構成されたの中にサブドキュメントがfakeName
あり、変更していたオブジェクトにはfakeName
フィールドがありません。
どうしたの?
そこの最初の行を次のように変更しました
data2[0].markModified('videos');
そして、それはそれを修正するように見えました。
何が起こっているのかの説明に基づいて、私はまだ答えを受け入れます。