これが回答されている場合は申し訳ありませんが、このサイトで私のニーズに合った他の質問を得ることができず、さらに重要なことに、うまくいきません.
「住所」のサブドキュメントを含む以下のサンプルドキュメントがあります。
{
"_id" : ObjectId("....")
,"addresses" :
[{
"start" : ISODate("1973-07-10T00:11:51.111Z")
,"value" : "123 long road"
}]
}
私がしなければならないことは、既存の住所レコードを属性で閉じて、新しい住所にend
新しい属性を持つ新しい行を追加することです。最終的には、コードが存在しないサブドキュメント レコードを更新する必要があるため、これをもう一度行う必要があります。start
value
end
以下のコードは機能しませんが、私が得ることができる限りです:
db.sites.update(
{"_id" : ObjectId("....")
, "addresses.end" : {"$exists" : false}}
,{"$set": {"addresses.$.end" : "fdsa"}});
これにより、次のエラーが発生します。
Cannot apply the positional operator without a corresponding query field containing an array.
誰かが私を正しい方向に向けることができますか?