如何使用mongoose停止_id的自动索引?

时间:2016-05-30 18:19:58

标签: mongodb indexing mongoose

我有以下架构定义:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var EmpSchema = new Schema({
    EmpName: {type: String},
    EmpRefered : {type: [String]},
});

因此,现在_id会自动生成并自动编入索引。由于某些架构的特定原因,我甚至不想在_id字段上建立索引。

为此,我尝试了以下代码:

options = {config:{autoIndex:false}};
var db2 = mongoose.createConnection('mongodb://localhost/DBName', options);

根据API docs它应该是有效的。如果我遗漏任何东西或任何其他方式来做同样的事情,任何人都可以放轻松。

注意:但我不想拉本机驱动程序和命令来删除所有索引。

1 个答案:

答案 0 :(得分:2)

好吧,我不确定您是否可以在mongoose中禁用_id上的自动索引,但您确实可以从mongo shell禁用它。但是,请记住,此设置适用于集合级别。

您将使用自定义选项创建集合。

db.createCollection('collection', {autoIndexId: false})

但是,请记住,如果在_id上禁用自动索引,则复制将无效。

请参阅db.createCollection()