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

标签 node.js mongodb mongoose mean-stack

我正在使用 Node.js 和 MongoDB 以及 Mongoose。 我正在通过 Node.js 连接到 Mongoose,

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

如何在node.js中配置一次为create index收集中?

我的App的目录结构是,基于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

指导我如何在 Node.js 的 MongoDB 集合上提供索引。

最佳答案

正如人们评论的那样,最好的方法是在 Mongoose 模式中设置索引。就我而言,它位于 models/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)来获取第一个。

关于node.js - 在 MEAN 堆栈中,如何进行一次性 MongoDB 索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32959354/

相关文章:

mysql - 尝试在 nodejs 中实现连接池时连接未定义

html - 使用 Express 在 node.js 中的数组中接收表单数据?

javascript - 找不到方法node.js模块

node.js - 为 Sails.js 应用程序初始化 MongoDB 数据库和用户的推荐方法是什么?

c# - 逐 block 迭代 mongodb 结果

node.js - 如何在没有模式的情况下创建 Mongoose Provider。嵌套

node.js - MongoDB 使用排序查询结果中的位置来计算字段

javascript - 如何在 MongoDB 中修改动态添加的文档字段

java - 如何为每个 Mongo 文档分配一个用户(字符串值)?

node.js - 在 Mongoose 中获得最大值