我需要在db(mongodb)中获取大量文档。我尝试将此值设为我的var:
var unique = collection.find({email: email}).count();
并且像这样:
var unique = collection.find({email: email}).toArray();
unique = unique.length;
但是,当我试图在控制台中看到这个号码时,这表明我未定义' :/
什么错了?
P.S sry for my english
答案 0 :(得分:1)
From the docs。它是db.collection.count
。请勿使用find
。
返回与find()查询匹配的文档数 集合或视图。 db.collection.count()方法不执行 find()操作,而是计数并返回数字 与查询匹配的结果。
使用示例:
const MongoClient = require('mongodb').MongoClient;
// Connection url
const url = 'mongodb://localhost:27017';
// Database Name
const dbName = 'users';
// Connect using MongoClient
MongoClient.connect(url, function(err, client) {
const db = client.db(dbName);
const email = 'foo@bar.com';
const query = { email: email };
const options = {};
db.collection.count(query, options, (err, result) => {
// handle error
if (err) {
console.log(err);
}
// do something with result
console.log(result);
});
});
以下是count
可能如何运作的基本示例。我假设您正在使用mongodb
npm而不是mongoose
或其他类似的mongo包装器。我在项目中使用它的方法是将与mongodb的连接建立为自己的模块,以便可以与其他查询一起使用。这样你就不必用连接包装每个查询。
答案 1 :(得分:0)
如果您想获取集合的所有文档,请使用:
db.collection.count
如果您想通过字段获取集合的所有文档,请使用:
collection.find({email: email}).toArray(function (err, items) {
console.log(items.length);
})