【问题标题】:How to check the collection is exist using MongoJS and Node.js如何使用 MongoJS 和 Node.js 检查集合是否存在
【发布时间】:2019-07-21 01:04:06
【问题描述】:

我需要使用 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 是否存在于 db 中。如果不存在,它将插入所需的文档。

【问题讨论】:

  • 为什么你认为你需要知道“收藏”是否存在? MongoDB 一般不关心。如果您真正想知道的只是是否插入文档,那么您应该使用"upserts" 来决定是否创建“文档”。 “集合”将只是在编写“文档”时创建,否则就存在。

标签: node.js mongodb mongojs


【解决方案1】:

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

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
}

希望对你有帮助

【讨论】:

    【解决方案2】:

    当我想检查集合的存在时,我在下面使用了一段简单的代码

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

    对 MongoDB 3.0 版本有好处。首先,当我查找指定的集合名称时,有一个函数 db.getCollectionNames() 来返回所有存在的集合。例如,如果没有必要的集合,我将创建它。

    【讨论】:

      猜你喜欢
      • 2012-11-06
      • 1970-01-01
      • 2014-06-30
      • 2018-02-27
      • 2018-08-11
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      相关资源
      最近更新 更多