Mongodb,查找集合是否为空,node.js
我是Node.js和Heroku的新手,我构建了一个使用node.js并从mongodb实例检索一些数据的小应用程序。我设置了整个程序,但是我的问题是我认为mongodb的语法很简单。
我需要在启动应用程序时知道我的夹中是否包含任何东西,如果没有,则不进行初始化。我尝试调用collection.count(),但返回未定义。
我尝试这样做
mongo.connect(mongoUri, {}, function(err, database) { if(!err) {
db = database;
console.log("Connected to 'testdb' database, HERE");
db.collection('tests', {safe:true}, function(err, collection) {
if (err) {
console.log("The 'tests' collection doesn't exist. Creating it ");
populateDB();//This would work for the first time I install the app on heroku
}
else { //Collection exists, but nothing is in it, this is where I am lost
console.log("now I am HERE");
//I do not know how to mimic this piece of code
//if((collection("tests").find().toArray.size() == 0 or empty or the equivalent of it) {
// populateDB();
//}
console.log((collection("tests").find().toArray.size()));
}
});
}
else {
console.log("COULD NOT CONNECT TO MONGO: " + mongoUri);
}
});
任何帮助表示赞赏。
回答:
任何访问数据库中数据的MongoDB驱动程序方法(如count
和toArray
)都通过回调函数参数(而不是通过返回值)异步将其结果提供给调用方,以使它们不会阻塞单个node.js线程。
因此检查将如下所示:
collection.count(function (err, count) { if (!err && count === 0) {
populateDB();
}
});
以上是 Mongodb,查找集合是否为空,node.js 的全部内容, 来源链接: utcz.com/qa/422969.html