有没有我可以在mongodb中查询所有文档的函数?

时间:2016-06-23 18:26:07

标签: mongodb

有没有办法在任何文档中找到属性?例如,我有Users,Clients,Students集合,我想返回所有{first_name:' John'}的文档。

2 个答案:

答案 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/