需要一些关于我的 mongodb 聚合查询的帮助 [重复]
Posted
技术标签:
【中文标题】需要一些关于我的 mongodb 聚合查询的帮助 [重复]【英文标题】:Need some help regarding my mongodb aggregate query [duplicate] 【发布时间】:2019-10-17 09:43:18 【问题描述】:我有以下聚合查询,用于查询大约 9+ 十万条记录:
db.getCollection('Job').aggregate([
"$sort":
"lastUpdatedAt": 1
,
"$match":
"$and": [
"lastUpdatedAt": "$gte": new Date("2019-04-01") ,
"$or": [
"job.scheduledEndTime": "$lte": new Date("2019-07-15") ,
"lastUpdatedAt": "$lte": new Date("2019-07-15")
]
,
"reduced": null
]
,
"$project": "_id": 1 ,
"$sort": "_id": 1 ,
"$limit": 100
])
在上面的查询中,我创建了复合索引,每个字段也有一个单独的索引:
"lastUpdatedAt": -1, "job.scheduledEndTime": -1, "reduced": 1
这是一个稀疏索引,因为一旦我从上述查询中获得结果并在其中执行一些操作后,我设置的所有文档中都没有缩减字段。
这是 .explain 告诉我的:https://pastebin.com/ERgChr2N
上面的查询大约需要 100 到 130 秒才能返回结果,所以有什么方法可以优化上面的查询。
提前致谢。
【问题讨论】:
【参考方案1】:大家好,我更改了我的查询以找到一个,我在 1 秒内得到所有结果,这是我的查找查询:
db.getCollection('Job').find( $and: [
lastUpdatedAt: $gte: new Date("2019-04-01") ,
"$or": [
"job.scheduledEndTime":"$lte": new Date("2019-07-15"),
"lastUpdatedAt":"$lte": new Date("2019-07-15")
] ,
reduced: null
], _id: 1).sort(_id: 1).limit(100)
【讨论】:
以上是关于需要一些关于我的 mongodb 聚合查询的帮助 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
从 MongoDB 聚合到 Spring Boot 聚合框架