Mongoose:如何向模式添加动态索引?

Posted

技术标签:

【中文标题】Mongoose:如何向模式添加动态索引?【英文标题】:Mongoose: how to add dynamic index to a schema? 【发布时间】:2020-07-25 17:17:48 【问题描述】:

我有很长的员工集合存储在 mongodb 数据库中。它们的属性在名为EmployeesSchema 的猫鼬模式中定义。为了加快查询速度,我想根据他们的工作实现索引,所以 mongo 只需要检查属于特定工作的员工。

如何动态创建这样的索引?

var EmployeesSchema = new Schema(
    name: "joe"
    job: "manager"


schema.createIndex("job": "manager");

另外,为了利用这个索引,我应该如何编写我的猫鼬查询? EmployeesSchema.find(name: "joe").job("manager") 会工作吗?

【问题讨论】:

【参考方案1】:

在作业字段上创建索引的正确语法如下:

schema.createIndex("job": 1);

现在要能够根据job 查找员工,您需要这样查询:

EmployeesModel.find(job: "manager");

【讨论】:

谢谢!但是,Mongoose 的文档说我可以直接在模式中定义索引。另外,这里的“1”代表什么?这是否意味着“创建一个名为 job 的索引,并在其中添加所有员工?如果是这样,与基本查询 find(job: "manager") 有什么区别? @DoneDeal0 1 显示索引中的方向,更多信息在官方docs或here @DoneDeal0 那么你成功了吗?如果是这样,请考虑将此标记为答案。

以上是关于Mongoose:如何向模式添加动态索引?的主要内容,如果未能解决你的问题,请参考以下文章

在客户端代码中重用 Mongoose 模式

如何从 Mongoose 获取定义的索引

如何使用 node 和 reactjs 向 mongoose 数组添加注释?

如何在我的猫鼬模式中引用多个模式?

如何在 Mongoose 中为模式属性添加选项?

Node.js Mongoose 如何保存新文档并向数组字段添加新值