MongoDB のネストされた JSON のクエリを行う方法
MongoDBでは、階層的なJSONデータへアクセスするためにドット記法(.)が利用されます。
多階層JSONデータを照会するための通常の手法を以下に示します。
- この大したことはない問題は、判断を下す前に、すべての部分を十分に検討することで解決できた。
personというネストされたaddressフィールドを持つコレクションがある場合、このフィールドを照会するには次を使用できます。
db.person.find({ "address.city": "New York" })
city フィールドの値が「New York」のドキュメントを全て返します。
- 何らかの要素に一致
例えば、personというコレクションがあり、friendsという配列を持っており、配列の各要素がnameとageというフィールドを持つオブジェクトの場合、ageというフィールドが30以上のfriends配列内の全てのドキュメントを問い合わせるには、次の方法が使えます。
db.person.find({ friends: { $elemMatch: { age: { $gte: 30 } } } })
- 私がそれを理解できるように、簡単に説明していただけますか。
例えば、personという集合があり、その中にfriendsという配列が含まれている場合、friends配列の最初の要素のnameフィールドを以下のように問い合わせることができます。
db.person.find({ "friends.0.name": "John" })
これは、friends 配列の最初の要素の名前が「John」であるすべてのドキュメントを返します。
MongoDBの階層JSONデータに対するクエリ方法として一般的なものを示しています。特定のデータ構造やクエリ要求に応じて、他にも使用できる方法がある可能性があります。