node.js - 通过 db.collection.count() 检查 MongoDb 数据库是否为空 - 不起作用

标签 node.js mongodb mongoose

我通过 Mongoose 连接到 MongoDb。然后,当连接成功时,我想检查数据库是否为空(意味着没有集合)。如果为空,我将向数据库播种数据。

我正在使用db.collection.count()来计算集合,但此代码不起作用。

var dbURI = 'mongodb://localhost/voddb';
mongoose.connect(dbURI);

mongoose.connection.on('connected', function () {  
    console.log('Mongoose default connection open to ' + dbURI);
    if(mongoose.connection.db.collection.count() == 0) {
        //seed database
    }  
});

它在 collection.count() 处向我抛出一个错误:

TypeError: Cannot read property 'collection' of undefined

出了什么问题?

最佳答案

您正在使用 mongoose.connection.db.collection 这是一个函数,您可以使用 mongoose.connection.db.collection('your_collection_name').count()

示例:

var dbURI = 'mongodb://localhost/my_db_name';

mongoose.connect(dbURI);

mongoose.connection.on('connected', function () { 
console.log('Mongoose default connection open to ' + dbURI);

// To List all Collections of a Database
mongoose.connection.db.listCollections().toArray(function(err, names) {
    if (err) {
        console.log(err);
    }
    else {
        names.forEach(function(e,i,a) {
            console.log("----->", e.name);
        });
    }
});

// To Count Documents of a particular collection
mongoose.connection.db.collection('users').count(function(err, count) {
    console.dir(err);
    console.dir(count);

    if( count == 0) {
        console.log("No Found Records.");
    }
    else {
        console.log("Found Records : " + count);
    }
});
});

关于node.js - 通过 db.collection.count() 检查 MongoDb 数据库是否为空 - 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37459215/

相关文章:

node.js - 唯一和稀疏模式级索引 MongoDB 和 Mongoose

node.js - 如何使用 Mongoose 更新 mongodb 中的对象?

javascript - 在数据库中存储表单架构和函数

javascript - 包含bundle.js脚本后,无法从index.html引用Browserify模块

json - 松弛 RTM 消息

python - Mongo在聚合中替换字段中的多个子字符串

ruby - 如何在没有 O^2 问题的情况下找到 Ruby 中一串二进制 bin 的最接近对(汉明距离)?

node.js - sticky-session 与 socket.io-sticky-session Node js 库!哪个更好?

node.js - 使用 pg-promise 进行嵌套查询对象映射

ruby - 通过 Mongoid ORM 将 UTF8 兼容字符串保存到 MongoDB 时,字符串无效 UTF-8 (BSON::InvalidStringEncoding)