【问题标题】:Mongoose: how to add dynamic index to a schema?Mongoose:如何向模式添加动态索引?
【发布时间】: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") 会工作吗?

【问题讨论】:

    标签: node.js mongodb express mongoose


    【解决方案1】:

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

    schema.createIndex({"job": 1});
    

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

    EmployeesModel.find({job: "manager"});
    

    【讨论】:

    • 谢谢!但是,Mongoose 的文档说我可以直接在模式中定义索引。另外,这里的“1”代表什么?这是否意味着“创建一个名为 job 的索引,并在其中添加所有员工?如果是这样,与基本查询 find({job: "manager"}) 有什么区别?
    • @DoneDeal0 1 显示索引中的方向,更多信息在官方docshere
    • @DoneDeal0 那么你成功了吗?如果是这样,请考虑将此标记为答案。
    猜你喜欢
    • 1970-01-01
    • 2017-04-07
    • 2016-01-27
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    • 2020-04-07
    • 1970-01-01
    相关资源
    最近更新 更多