【问题标题】:How to stop auto indexing of _id using mongoose?如何使用猫鼬停止自动索引_id?
【发布时间】:2016-09-28 15:17:44
【问题描述】:

我有以下架构定义:

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,它应该可以工作。如果我遗漏任何东西或任何其他方式来做同样的事情,任何人都可以提出一些建议。

注意:但我不喜欢拉原生驱动程序和命令来删除所有索引。

【问题讨论】:

标签: mongodb indexing mongoose


【解决方案1】:

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

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

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

但是,请记住,如果您在 _id 上禁用自动索引,复制将不起作用。

请看db.createCollection()

【讨论】:

    猜你喜欢
    • 2016-11-12
    • 2021-04-18
    • 2021-05-07
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    • 2016-11-06
    • 2017-12-06
    • 2022-01-23
    相关资源
    最近更新 更多