mongodb-query - MongoDB 通配符索引 - 如何用索引覆盖投影
问题描述
我在 mongodb 上有一个用于不同工作流模板的动态模式。每个工作流模板都有关联的数据属性,这些属性正常存储<key,value>
{
_id : "1"
data : {
team_id : "ABC",
template_id : "retail_sales",
recorded_at : "",
billing_state : "KA",
pin_code : "50001"
}
}
{
_id : 2
data : {
team_id : "ABC",
template_id : "simple_crm",
recorded_at : "",
status : "NEW",
loan_amount : 10000
}
}
我知道在 4.2 中有一个通配符索引,我想将其用于聚合查询。已创建完整的文档通配符索引,如下所示
{
"$data.**" : 1
}
在执行查询时,我可以看到使用了索引。
db.getCollection("view_status_dashboard").aggregate(
[
{
"$match" : {
"data.team_id" : "ABC",
"data.template_id" : "retail_sales"
}
}
},
{
$project : {
_id : 0,
data: 1
}
}
])
然而,投影正在进行“FETCH”调用,这会增加内存。
如何确保我的投影也包含在 mongo 通配符索引下,从而限制内存使用?
解决方案
推荐阅读
- javascript - 为什么 for 循环中的事件处理程序不适用于所有迭代?
- multithreading - 非常短的任务的线程同步
- c - 使用 C 在链表中的现有元素之前插入时无限打印
- reactjs - (原因:CORS 请求没有成功)
- pickle - 由于导入问题,Ray 无法取消远程功能?
- amazon-elastic-beanstalk - 如何在 aws beanstalk 文件 install_packages.config 中为 yum install 指定存储库?
- swift - 一次更改一个状态以查看清单
- php - Laravel Laravel\Socialite\Two\InvalidStateException
- python - 通过另一个 dict 订购 Django 查询集
- javascript - 如何在href中获取具有相同关键字的元素