web-dev-qa-db-ja.com

MongoDBで、$ setを使用してネストされた値/埋め込みドキュメントを更新するにはどうすればよいですか?

MongoDBでは、ネストされた値を更新するために$setをどのように使用しますか?

たとえば、次のドキュメントを含むコレクションpeopleについて考えてみます。

{
  _id: ObjectId("5a7e395e20a31e44e0e7e284"),
  name: "foo",
  address: { street: "123", town: "bar" }
}

streetドキュメントに埋め込まれているaddressフィールドを"123"から"Main Street"に更新するにはどうすればよいですか?

35
Drew LeSueur

ドット表記 の使用:

db.people.update({ }, { $set: { "address.street": "Main Street" } })
67

Nielsの回答に加えて、ネストされた値の「タイプ」も確認してください。私の場合、それはjsonから形成された「文字列」でした。これはありそうもないかもしれませんが、値が正しいタイプであることを確認してください。

2
user2725012