Mongodb 如何停止使用mongoose对_id进行自动索引?
我有以下模式定义:Mongodb 如何停止使用mongoose对_id进行自动索引?,mongodb,indexing,mongoose,Mongodb,Indexing,Mongoose,我有以下模式定义: var mongoose = require('mongoose'); var Schema = mongoose.Schema; var EmpSchema = new Schema({ EmpName: {type: String}, EmpRefered : {type: [String]}, }); 因此,现在自动生成\u id,并自动编制索引。由于某些模式的特殊原因,我甚至不想在\u id字段上建立索引 为此,我尝试了以下代码: options =
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var EmpSchema = new Schema({
EmpName: {type: String},
EmpRefered : {type: [String]},
});
因此,现在自动生成\u id
,并自动编制索引。由于某些模式的特殊原因,我甚至不想在\u id
字段上建立索引
为此,我尝试了以下代码:
options = {config:{autoIndex:false}};
var db2 = mongoose.createConnection('mongodb://localhost/DBName', options);
按照计划,这应该是一项工作。如果我遗漏了什么或其他方法,谁能帮我点灯
注意:但我不希望使用本机驱动程序和命令删除所有索引。好吧,我不确定您是否可以在mongoose中禁用
\u id
上的自动索引,但您确实可以从Mongoshell中禁用它。但是,请记住,此设置应用于集合级别
您将使用自定义选项创建集合
db.createCollection('collection', {autoIndexId: false})
但是,请记住,如果在\u id
上禁用自动索引,复制将无法工作
请看好吧,我不确定您是否可以在mongoose中禁用\u id
上的自动索引,但您确实可以从mongo shell
中禁用它。但是,请记住,此设置应用于集合级别
您将使用自定义选项创建集合
db.createCollection('collection', {autoIndexId: false})
但是,请记住,如果在\u id
上禁用自动索引,复制将无法工作
请参见@joao,实际上您可以禁用\u id
字段上的索引。请参阅@Saleem,autoIndexId ia已弃用,并将根据您刚才链接的文档页面在3.4版中删除。@joao是的,您是正确的。@joao,您确实可以禁用\u id
字段上的索引。请参阅@Saleem,autoIndexId ia已弃用,将根据您刚才链接的文档页面在3.4版中删除。@joao是的,您是正确的。