如何使用 MongoJS 和 Node.js 检查集合是否存在

How to check the collection is exist using MongoJS and Node.js

我需要使用 Node.js 和 MongoDB 检查数据库中是否存在集合。这里我使用 mongoJS 作为节点驱动程序。我的代码如下:

var mongoJs=require('mongojs');
var md5 = require('md5');
var dateTime = require('node-datetime');
var collections=['f_users'];
var MONGOLAB_URI="mongodb://user:*****123%40@ds127153.mlab.com:27153/fgdp";
var db=mongoJs(MONGOLAB_URI,collections);
exports.userSignup=function(req,res){
    var email=req.body.email;
    var password=req.body.password;
    var dob=req.body.dob;
    var dt = dateTime.create();
    var createdDate=dt.format('Y-m-d H:M:S');
    var updateDate=dt.format('Y-m-d H:M:S');
    db.f_user_login
    db.f_user_login.insert()
}

这里我需要集合f_user_login是否存在于数据库中。如果不存在,它将插入所需的文档。

我想您首先需要将集合添加到您的数据库中。

var db=mongoJs(MONGOLAB_URI,['f_user_login', 'f_users']);

然后你可以试试运行这个

var fUserLoginExist = db.f_user_login.findOne();
if (fUserLoginExist) {
  // the collection exists
} else {
  // the collection does not exist
}

希望对您有所帮助

当我想检查 collection 是否存在时,我使用下面的一段简单代码

  var nmColl = "MyCollection";
  if(db.getCollectionNames().find(function(el) {return el == nmColl;}) == null)
  {
     //do something
  }

这对 MongoDB 3.0 有好处。首先,有函数 db.getCollectionNames() 到 return 都存在 collections,当我查找 collection 的指定名称时.如果没有必要的collection,比如我就自己创建。