MongoDB两个日期相减返回秒数 整合$in筛选指定ID的实现方法
你只需要在原有聚合查询的管道最前面添加$match阶段,写入_id的过滤条件即可,整合后的查询语句如下:
db.mycollection.aggregate([ // 过滤指定_id的文档 { "$match": { "_id": { $in: ["123", "234"] } } }, // 计算处理耗时的原有逻辑 { "$project": { "receivedTime": 1, "deliveryTime": 1, "processedTime": { "$divide": [ { "$subtract": ["$deliveryTime", "$receivedTime"] }, 1000 // 单位为秒,调整分母可切换单位:60000=分钟,3600000=小时 ] } } } ])
说明
- MongoDB聚合管道按定义的顺序依次执行,先做
$match过滤可以减少后续阶段的计算数据量,提升查询效率 - 最终返回结果仅包含你指定的两个_id对应的文档,
processedTime字段的计算规则和你原有逻辑完全一致
内容的提问来源于stack exchange,提问作者Mallikarjun
相关产品推荐
相关产品推荐

