2015-10-05 81 views
2

我正在使用Node.js和MongoDB與Mongoose。 我連接到貓鼬形式的Node.js作爲,在MEAN堆棧中,如何執行一次性MongoDB索引?

db = mongoose.connect('mongodb://localhost/my_database_name') 

如何能在集合中的node.js配置一次create index

我的應用程序的目錄結構的基礎上,this tutorial

HTML  views/ 
Angular.js public/javascript/ 
Express.js routes/ 
Node.js  app.js 
Mongoose js models/, set up in app.js 
Mongo db set up in app.js 

指導我如何給指數的MongoDB集合形式Node.js的

+4

使用貓鼬,你一般會想[用模式定義索引](http://mongoosejs.com/docs/guide.html#indexes)。 –

+0

嗨Carl Groner,謝謝。你還可以檢查我在下面的答案中寫的關於將複合索引行放在app.js文件中是正確的嗎? – Melissa

回答

4

正如人們評論的,最好的方法是在Mongoose模式中設置索引。在我的情況下,它在模型/ Animal.js文件中。

對於單索引,那麼您可以在定義架構

var animalSchema = new Schema({ 
    name: String, 
    type: String, 
    tags: { type: [String], index: true } 
}); 

更多信息,請參見the docs定義。

對於compound indexing,則可以在同一文件中添加一行像這樣的架構定義後:

animalSchema.index({"tags": 1, "name": 1}); 

Sort order是升序(1)或降序(-1)。

順便說一句,你可以使用db.animal.find().sort({tags: 1, name: 1}).limit(1)來獲得第一個。