在MEAN堆栈中,如何进行一次性MongoDB索引?

时间:2015-10-05 23:16:47

标签: node.js mongodb mongoose mean-stack

我正在使用Node.js和MongoDB与Mongoose。 我将Mongoose表单Node.js连接为

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提供索引。

1 个答案:

答案 0 :(得分:4)

正如人们评论的那样,最好的方法是在Mongoose模式中设置索引。就我而言,它位于models / Animal.js文件中。

对于单个索引,您可以定义何时定义架构

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

有关详细信息,请参阅the docs

对于compound indexing,您可以在Schema定义之后在同一文件中添加一行,如下所示:

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

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

顺便说一句,您可以使用db.animal.find().sort({tags: 1, name: 1}).limit(1)获取第一个。