Приведенный ниже код (с двумя закомментированными строками)
myComments.aggregate(
{ $sort: { createdAt: -1 } },
{ $match: query },
{ $group: {
_id: {
activity: "$activity",
writer: "$writer"
},
summary: {
// $arrayToObject: {
$push: {
"k": "$userID",
"v": "$commentText",
}
// }
},
} },
{ $project: { _id: 0 } },
( err, data ) => {
console.log( JSON.stringify( data || [] ) );
}
)
создает «сводные» массивы, как и ожидалось:
[ {"summary":[ {"k":183044,"v":"adf"}, {"k":184817,"v":"be"}, {"k":187252,"v":"c"} ]},
{"summary":[ {"k":183044,"v":"146"}, {"k":184817,"v":"25"}, {"k":187252,"v":"3"} ]} ]
Однако, когда я удаляю комментарии и разрешаю $arrayToObject
для работы с этими массивами вывод data
не определен.
Я неправильно использую одну или обе эти команды? Не правильно ли их так вкладывать?