在DB中创建的唯一索引不能与node.js上的mongoose save()一起使用

时间:2015-11-12 15:35:38

标签: node.js mongodb mongoose

我知道围绕这个主题提出了很多问题,但我似乎无法找到合适的最新答案。 在一个新的空DB上,我使用了以下行抛出mongo shell:

db.rest.createIndex( { "code": 1 }, { unique: true } )

然后我启动了我的node.js服务器。我的架构如下:

var restSchema = new Schema({code: String});
mongoose.model('rest', restSchema);

并且 save()在这里完成:

router.get('/', function (req, res, next) {
    var o = new (mongoose.model('rest'))({code: "uniuqeString"});
    o.save(function (err, o) {
    if (err) return console.error(err);
});
mongoose.model('rest').find(function (err, rest) {
    res.send(rest);
});

现在,当这段代码运行时,mongoose正在使用code:"uniqueString"将新文档插入数据库,而忽略我通过 mongo shell 高级定义的唯一索引

有任何想法可能会发生这种情况吗?是因为我还没有通过猫鼬模式将该领域定义为独特的?如果是这种情况,我想在启动应用程序之前预定义数据库中的所有索引,并避免代码中的索引定义。

0 个答案:

没有答案