有没有办法在任何文档中找到属性?例如,我有Users,Clients,Students集合,我想返回所有{first_name:' John'}的文档。
答案 0 :(得分:1)
给定一个集合名称列表和一个查询文档,您可以构建查询,以便可以使用循环来迭代和查询每个集合。在循环中,您可以将每个查询的结果添加到最终数组中,该数组将包含与查询匹配的集合中的所有文档。
例如,这个mongo shell脚本将迭代collectionList
,将每个集合的find()
查询结果附加到结果数组中:
var results = [],
collectionList = ["users", "clients", "students"],
query = { "first_name": "John" };
collectionList.forEach(function (collectionName){
var result = db.getCollection(collectionName).find(query).toArray();
results = results.concat(result);
});
printjson(results);
如果您事先不知道所有集合的名称,那么您可以使用返回集合名称列表的shell方法 db.getCollectionNames()
:
var results = [],
collectionList = db.getCollectionNames(),
query = { "first_name": "John" };
collectionList.forEach(function (collectionName){
var result = db.getCollection(collectionName).find(query).toArray();
results = results.concat(result);
});
printjson(results);
答案 1 :(得分:0)
db.collection.find()应该可以正常工作。 不带参数的find()方法返回集合中的所有文档,并返回文档的所有字段。 https://docs.mongodb.com/manual/reference/method/db.collection.find/