0
{
"_id" : ObjectId("5925e2213daf48359cb5429e"),
"email" : "[email protected]",
"firstname" : "test3",
"friends" : [
{
"friend_email" : "[email protected]",
"status" : 1,
"fname" : "test2"
},
{
"friend_email" : "[email protected]",
"status" : 1,
"fname" : "test1"
}
]
}
私のデータベースは上記のようです。 「友人」は、その中に多数のエントリを持つことができます。 friend_email = "[email protected]"とemail = "[email protected]"で特定の項目(変数値に応じて)を検索し、その特定の項目 "status"を0に変更する必要があります。 ネストされたドキュメントの更新MongoDB
collection_temp.update({
"email": email([email protected]) ,
"friends" :
{$elemMatch :
{"friend_email" : friend_req_sent_to ([email protected])}
}},
{"$set":
{"friends.$.status" : 0}
},
function(err, result) {
if (result) {
console.log("SUCCESS");
} else {
console.log("FAIL");
}
});
クエリは正しく実行されますが、ステータスフィールドは変更されません....どこが間違っているのか教えてください。
クエリを別々に実行してから、それぞれの関数を呼び出せますか?そう簡単に? –
奇妙な私はあなたのクエリの簡単なテストを行い、それは正常に働いた。プロパティ "status"の値が変更されていないことをどのように確認していますか?あなたのコレクション名をチェックしてください。一つはdbに書かれているものとは違うコードに書かれています。 –
@JayNirgudkar誰かがあなたの問題を解決しましたか?もしそうなら、あなたは最高の答えを受け入れてください(ポイントの下にあるチェックマークをクリックしてください)。それはあなたの質問に出くわす他のユーザーがすぐに受け入れられた答えを見つけるのを助け、15人の担当者も与えます。著者に指摘する(: – Danziger