2016-05-30 31 views
0

我有以下架構定義:如何停止使用貓鼬對_id進行自動索引?

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

所以,現在_id被自動生成並自動建立索引。對於某些模式的特定原因,我不希望甚至在_id字段上進行索引。

爲此,我曾嘗試下面的代碼:每API docs

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

因爲它應該是工作。如果我缺少任何東西或任何其他方式來做同樣的事,任何人都可以點亮一下。

注意:但我不喜歡拉本機驅動程序和命令來刪除所有索引。

+4

[你不能刪除_id指數(https://docs.mongodb.com/v3.2/indexes/#default-id-index) – joao

+0

@joao,實際上你可以禁用索引在'_id'字段上。請參閱https://docs.mongodb.com/manual/reference/method/db.createCollection/ – Saleem

+1

@Saleem autoIndexId ia已棄用,並將根據您剛剛鏈接的文檔頁面在版本3.4中刪除。 – joao

回答

2

嗯,我不確定你是否可以禁用貓鼬上的_id自動索引,但是你確實可以從mongo shell中禁用它。但請記住,此設置適用於集合級別。

您將使用自定義選項創建集合。

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

但是,請記住,如果你在_id禁用自動索引,複製將無法正常工作。

請參閱db.createCollection()

+0

plus1用於shell命令和有關複製的警報 –