我有以下架构定义:
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它应该是有效的。如果我遗漏任何东西或任何其他方式来做同样的事情,任何人都可以放轻松。
注意:但我不想拉本机驱动程序和命令来删除所有索引。
答案 0 :(得分:2)
好吧,我不确定您是否可以在mongoose中禁用_id
上的自动索引,但您确实可以从mongo shell
禁用它。但是,请记住,此设置适用于集合级别。
您将使用自定义选项创建集合。
db.createCollection('collection', {autoIndexId: false})
但是,请记住,如果在_id
上禁用自动索引,则复制将无效。