【发布时间】:2020-10-27 17:46:39
【问题描述】:
我需要使用以下方法在一天内处理日志和订单:
但如果我使用 $eq 结果总是返回空。但是如果我使用 $gte 进行日期比较($$order.LogDate),那么我会得到订单数。但匹配的数据在数据库中可用。知道我在哪里做错了吗?我还尝试将 $gte 和 $lte 与日期和日期 + 1 天一起使用。仍然没有运气:
{
"_id" : 0,
"FirstName" : { "$arrayElemAt" : ["$drivers.FirstName", 0] },
"LastName" : { "$arrayElemAt" : ["$drivers.LastName", 0] },
"PhoneNumber" : { "$arrayElemAt" : ["$drivers.ContactNo", 0] },
"LogDate" : "$_id.LogDate",
"LogDateEnd":{ $add: [ "$_id.LogDate", 86400000 ] },
"TotalMinutes" : "$TotalMinutes",
"OrderCount" : {
"$size" : {
"$filter" : {
"input" : "$orders",
"as":"order",
"cond" : {
"$and" : [{ "$eq" : ["$$order.OrderStatus", "COMPLETE"] },{ "$eq" : ["$$order.LogDate", "$LogDate"] }]
}
}
}
}
}
【问题讨论】:
-
您能给我们看一个示例文档或可重现的场景吗?
标签: mongodb aggregation-framework