Как проверить, существует ли коллекция с помощью MongoJS и 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 существуют внутри БД или нет. Если не существует, он вставит необходимый документ. Пожалуйста, помогите.

2 ответа

Решение

Я полагаю, что вам сначала нужно добавить коллекцию в вашу базу данных.

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
}

Надеюсь, поможет

Когда я хочу проверить наличие коллекции, я использую простой фрагмент кода ниже

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

Это хорошо для MongoDB до 3.0. Во-первых, есть функция db.getCollectionNames(), которая возвращает все существующие коллекции, когда я смотрю указанное имя коллекции. Если нет необходимой коллекции, например, я создам ее.

Другие вопросы по тегам