ensureIndex要求回调

时间:2014-06-29 14:06:10

标签: node.js mongodb

我需要在MongoDB中创建一个索引来存储独特的slu ..

我使用此代码生成索引:

this._db = db;
this._collection = this._db.collection("Topics");
this._collection.ensureIndex( { slug: 1 }, { unique: true });

但是当我运行我的测试时,它在“beforeEach”上失败了:(我正在使用mongo-clean NPM)

beforeEach(function (done) {
    clean(dbURI, function (err, created) {
        db = created;
        instance = topicManager(db);
        done(err);
    });
});

话说:

Uncaught Error: Cannot use a writeConcern without a provided callback

我做错了什么? (如果我评论ensureIndex一切正常)

2 个答案:

答案 0 :(得分:5)

如回复所示,您可能需要为调用ensureIndex提供回调函数:

this._db = db;
this._collection = this._db.collection("Topics");
this._collection.ensureIndex( { slug: 1 }, { unique: true }, function(error) {
  if (error) {
   // oops!
  }});

答案 1 :(得分:2)

ensueIndex()现已弃用于v ^ 3.0.0

对于使用^3.0.0的人:

  

自3.0.0版开始不推荐使用:db.collection.ensureIndex()现在是db.collection.createIndex()的别名。

https://docs.mongodb.com/manual/core/index-unique/#index-type-unique

示例:

db.members.createIndex( { "user_id": 1 }, { unique: true } )