我可以通过遍历所有值来打印出数组的每个元素,但是无法在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" }