【发布时间】:2022-01-03 10:58:01
【问题描述】:
我正在学习 MongoDb 查询,我的要求是计算两个日期之间的平均时间。我编写了一个包含项目和组阶段的 mongoDB 查询。
{
project: {
OrderObject:1,
date:1
}
},
{
group: {
objectId: '$OrderObject.pharmacy.companyName',
count: {
$sum: 1
},
duration: {
$avg: {
$abs: {
$divide: [
{
$subtract: [
{
$arrayElemAt: [
'$date',
0
]
},
{
$arrayElemAt: [
'$date',
1
]
}
]
},
60000
]
}
}
},
OrderIDs: {
$addToSet: '$OrderObject.orderID'
},
pharmacyName: {
$addToSet: '$OrderObject.pharmacy.companyName'
},
}
}
我得到的输出是
{
count: 3,
duration: 54.53004444444445,
OrderIDs: [ 'ABCDE', 'EWQSE', 'ERTRE' ],
pharmacyName: [ 'pharmacy business Name' ],
objectId: null
},
有人可以告诉我为什么在这种情况下 objectId 为空,但该值打印在 pharmacyName 字段中。我在解析服务器中使用这个管道作为 query.aggregate(pipeline, {useMasterKey:true})
我的期望是 pharmacyName === objectId
【问题讨论】:
-
能否提供问题的示例数据文件?
标签: mongodb mongodb-query