find()を使用してMongoDBでネストされたキーを検索しますか?
find()でMongoDBのネストされたキーを検索するには、dot(。)表記を使用できます。以下は構文です
db.yourCollectionName.find({"yourOuterFieldName.yourInnerFieldName":"yourValue"}).pretty();
まず、ドキュメントを使用してコレクションを作成しましょう:
>db.searchForNestedKeysDemo.insertOne({"ClientName":"Larry","ClientAge":28,"ClientExtra Details":{"isEducated":true,"CountryName":"US"}}); { "acknowledged" : true, "insertedId" : ObjectId("5ca20e8b66324ffac2a7dc64") } >db.searchForNestedKeysDemo.insertOne({"ClientName":"Chris","ClientAge":29,"ClientExtra Details":{"isEducated":false,"CountryName":"UK"}}); { "acknowledged" : true, "insertedId" : ObjectId("5ca20ea366324ffac2a7dc65") } >db.searchForNestedKeysDemo.insertOne({"ClientName":"David","ClientAge":39,"ClientExtra Details":{"isEducated":true,"CountryName":"AUS"}}); { "acknowledged" : true, "insertedId" : ObjectId("5ca20eba66324ffac2a7dc66") }
以下は、find()メソッドを使用してコレクションからすべてのドキュメントを表示するためのクエリです
> db.searchForNestedKeysDemo.find().pretty();
これにより、次の出力が生成されます
{ "_id" : ObjectId("5ca20e8b66324ffac2a7dc64"), "ClientName" : "Larry", "ClientAge" : 28, "ClientExtraDetails" : { "isEducated" : true, "CountryName" : "US" } } { "_id" : ObjectId("5ca20ea366324ffac2a7dc65"), "ClientName" : "Chris", "ClientAge" : 29, "ClientExtraDetails" : { "isEducated" : false, "CountryName" : "UK" } } { "_id" : ObjectId("5ca20eba66324ffac2a7dc66"), "ClientName" : "David", "ClientAge" : 39, "ClientExtraDetails" : { "isEducated" : true, "CountryName" : "AUS" } }
以下は、MongoDBでネストされたキーを検索するためのクエリです
> db.searchForNestedKeysDemo.find({"ClientExtraDetails.CountryName":"UK"}).pretty();
これにより、次の出力が生成されます
{ "_id" : ObjectId("5ca20ea366324ffac2a7dc65"), "ClientName" : "Chris", "ClientAge" : 29, "ClientExtraDetails" : { "isEducated" : false, "CountryName" : "UK" } }
-
MongoDBでネストされた配列のフィルタリング条件を設定します
フィルタリング条件を設定するには、MongoDBaggregate()で$filterと$condを使用します。 $ filterは、指定された条件に基づいて返す配列のサブセットを選択します。ドキュメントを使用してコレクションを作成しましょう- > db.demo725.insertOne( ... { ... ... "details": { ... ... "userMessages": [ ...  
-
大文字と小文字を区別しない検索用のMongoDB$regex演算子iまたはI
このためには、大文字と小文字を区別しない(i)を使用する必要があります。ドキュメントを使用してコレクションを作成しましょう- > db.demo759.insertOne({SubjectName:"MySQL"}); { "acknowledged" : true, "insertedId" : ObjectId("5eb02ba95637cd592b2a4ae7") } > db.demo759.insertOne({SubjectName:&qu