MongoDB のネストされた JSON のクエリを行う方法

MongoDBでは、階層的なJSONデータへアクセスするためにドット記法(.)が利用されます。

多階層JSONデータを照会するための通常の手法を以下に示します。

  1. この大したことはない問題は、判断を下す前に、すべての部分を十分に検討することで解決できた。

personというネストされたaddressフィールドを持つコレクションがある場合、このフィールドを照会するには次を使用できます。

db.person.find({ "address.city": "New York" })

city フィールドの値が「New York」のドキュメントを全て返します。

  1. 何らかの要素に一致

例えば、personというコレクションがあり、friendsという配列を持っており、配列の各要素がnameとageというフィールドを持つオブジェクトの場合、ageというフィールドが30以上のfriends配列内の全てのドキュメントを問い合わせるには、次の方法が使えます。

db.person.find({ friends: { $elemMatch: { age: { $gte: 30 } } } })
  1. 私がそれを理解できるように、簡単に説明していただけますか。

例えば、personという集合があり、その中にfriendsという配列が含まれている場合、friends配列の最初の要素のnameフィールドを以下のように問い合わせることができます。

db.person.find({ "friends.0.name": "John" })

これは、friends 配列の最初の要素の名前が「John」であるすべてのドキュメントを返します。

MongoDBの階層JSONデータに対するクエリ方法として一般的なものを示しています。特定のデータ構造やクエリ要求に応じて、他にも使用できる方法がある可能性があります。

bannerAds