【发布时间】:2019-06-14 00:17:36
【问题描述】:
我想在实习后达到这个结果:
dataset: [
{
seriesname: "GROUP 1",
data: [
{
stage: 'START'
value: 3
},
{
stage: 'END'
value: 4
}
]
},
{
seriesname: "GROUP 2",
data: [
{
stage: 'START'
value: 3
},
{
stage: 'END'
value: 1
}
]
}
]
但是我不能同时执行 cond 和 push 以获得多个同时结果
{ $unwind: '$name' },
{ $group: {
_id: '$name.name',
data: { $push: {
$first: {
'value': { $sum: {
$cond: [
{ $and: [
{ $eq: ['$stage', 'START'] },
{ $gte: ['$dStart', new Date(dStart)] },
{ $lte: ['$dEnd', new Date(dEnd)] }
] }, parseInt(1), parseInt(0)] } },
'stage': 'START'
},
$first: {
'value': { $sum: {
$cond: [
{ $and: [
{ $eq: ['$two', 'END'] },
{ $gte: ['$dStart', new Date(dStart)] },
{ $lte: ['$dEnd', new Date(dEnd)] }
] }, parseInt(1), parseInt(0)] } },
'stage': 'END'
}
}}
} }
我怎样才能正确地完成所有这些阶段?
- 我查看了其他一些帖子,但没有发现任何与 cond 和 push 创建数组一起使用的帖子
【问题讨论】:
-
如果您也发布一些示例数据会很有帮助...不仅仅是代码和所需的结果。另外,将mongoplayground.net 视为答案模板。
-
基本上是这样的,但日期是数组,包含多个对象和多个查询mongoplayground.net/p/OjmSixJBfTG
标签: mongodb aggregation-framework