我想创建一个具有唯一索引的集合 我使用认为它足以在我的应用程序启动中执行此操作 -
db.collection('myCollection', {strict: true}, function (err, collection) {
if (!err)
{
collection.ensureIndex({ "name" : 1},{unique: true}, function dummy(result,err){});
}
});
``
但是,当第一次运行应用程序时,'myCollection'集合不存在,因此我的'ensureIndex'不会被调用(错误将返回给回调)。这意味着我的索引没有按预期创建。
我看到你可以使用createCollection()
功能,但据我所知,这不是标准做法
确保在插入第一个文档时,我的索引已经到位的最佳做法是什么?
答案 0 :(得分:0)
从db.collection
电话中移除{strict: true}
选项;这就是导致它在不存在集合的情况下向你的回调返回错误的原因(这是该选项的唯一目的)。
db.collection('myCollection', function (err, collection) {
if (!err)
{
collection.ensureIndex({"name": 1},
{unique: true},
function dummy(result,err){});
}
});