У меня возникают проблемы, когда я разматываю более одного поля из суб-документа.
Вот как выглядят данные: -
{
resp: {
field1: 'yes',
field2: ''
},
{
resp: {
field1: 'yes',
field2: ''
}
etc,etc...
Если я обрабатываю конвейер агрегирования для ОДНОГО поля он работает нормально, так что это работает ...
{ $unwind: "$resp" },
{ $unwind: "$resp.field1" },
{ $project: { field1: "$resp.field1" } }
{ $group: {
_id: 1,
field1: { $sum: { $cond: [{ $eq: ["$field1","yes"] },1,0] } }
}
}
Но если я теперь хочу вернуть поле 2 в той же агрегации, используя следующее, оно вернет счетчик нуля для обоих поля, тогда как ранее field1 имело счет> ноль.
{ $unwind: "$resp" },
{ $unwind: "$resp.field1" },
{ $unwind: "$resp.field2" },
{
$project: {
field1: "$resp.field1",
field2: "$resp.field2"
},
{ $group: {
_id: 1,
field1: { $sum: { $cond: [{ $eq: ["$field1","yes"] },1,0] } },
field2: { $sum: { $cond: [{ $eq: ["$field2","yes"] },1,0] } }
}
}
Любые предложения были бы очень признательны.