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驱动程序方法(如counttoArray)都通过回调函数参数(而不是通过返回值)异步将其结果提供给调用方,以使它们不会阻塞单个node.js线程。

因此检查将如下所示:

collection.count(function (err, count) {

if (!err && count === 0) {

populateDB();

}

});

以上是 Mongodb,查找集合是否为空,node.js 的全部内容, 来源链接: utcz.com/qa/422969.html

回到顶部