すべての値を反復処理することで配列の各要素を出力できますが、MongoDBで特定の要素を取得できません
特定の要素をフェッチするには、forEach()で繰り返します。ドキュメントを使用してコレクションを作成しましょう-
> db.demo742.insertOne({ "userDetails": [ { "userName":"Robert", "CountryName":"UK" }, { "userName":"David", "CountryName":"AUS" } ]} ); { "acknowledged" : true, "insertedId" : ObjectId("5ead790b57bb72a10bcf0677") }
find()メソッドを使用してコレクションからすべてのドキュメントを表示する-
> db.demo742.find().pretty();
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5ead790b57bb72a10bcf0677"), "userDetails" : [ { "userName" : "Robert", "CountryName" : "UK" }, { "userName" : "David", "CountryName" : "AUS" } ] }
以下は、配列から要素を取得するためのクエリです-
> var ListOfCountryName= {}; > db.demo742.find({}).forEach(function(doc) { ... doc.userDetails.forEach(function (d){ ... ListOfCountryName[d.CountryName] =d.CountryName; ... }); ... } ... ) > printjson(ListOfCountryName);
これにより、次の出力が生成されます-
{ "UK" : "UK", "AUS" : "AUS" }
-
MongoDBドキュメントの特定のフィールドから配列要素の数を取得しますか?
特定のフィールドから配列要素をカウントするには、MongoDBで$sizeを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo723.insertOne({"Subject":["MySQL","MongoDB"]}); { "acknowledged" : true, "insertedId" : ObjectId("5eab094d43417811278f588a") } >
-
MongoDBの特定の文字列でフィールドのすべての値を更新しますか?
すべての値を更新するには、update()をmulti:trueとともに使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo720.insertOne({"SubjectName":"MySQL"}); { "acknowledged" : true, "insertedId" : ObjectId("5eaae7ca43417811278f5883") } > db.demo720.insertOn