У меня есть две коллекции: List и ListSnapshot (взятые изо дня в день).
-List
{
_id: { $oid: "5f0d71fc9037e9858c96f131" },
list: [
{
_id: { $oid: "5f0d71fc9037e9858c96f132" },
name: "Item1",
id: "I2WQDFU7Z8C15E",
link: "https://www.ecomm1.heroku.com",
price: 44.99,
},
{
_id: { $oid: "5f0d71fc9037e9858c96f133" },
name: "Item2",
id: "I194JQPIWR0CY5",
link: "https://www.ecomm1.heroku.com",
price: 30.99,
},
],
creationDate: { $date: "2020-07-14T08:51:01.443Z" },
user: "713cdd45df7a6b979643b0a6f4d5be52bef1ea48e7c26088d88c50ac06c1b155",
id: "366c83ffc8be98f4de043629b5dcacb607d80f560cdd5741927c7d5a80513b0f",
__v: 0,
}
-ListSnapshot
{
_id: { $oid: "5f0d824e7e777e44d8115ddc" },
list: [
{
_id: { $oid: "5f0d824e7e777e44d8115ddd" },
name: "Item1",
id: "I2WQDFU7Z8C15E",
price: 54.99,
},
{
_id: { $oid: "5f0d824e7e777e44d8115dde" },
name: "Item2",
id: "I194JQPIWR0CY5",
price: 10.99,
},
],
date: { $date: "2020-07-14T10:00:42.744Z" },
user: "713cdd45df7a6b979643b0a6f4d5be52bef1ea48e7c26088d88c50ac06c1b155",
id: "366c83ffc8be98f4de043629b5dcacb607d80f560cdd5741927c7d5a80513b0f",
__v: 0,
}
Я выполняю агрегирование с совпадением по идентификатору "List", а затем я группирую по list.id для вычисления некоторых значений лайков (avg, max, et c ..) для каждого элемента. Я хочу добавить поле ссылки «Список» к моему результату.
await collection.aggregate(
[
{ $match: { [filter]: group } },
{ $unwind: "$list" },
{ $sort: { date: 1 } },
{
$group: {
_id: { id: "$list.id", name: "$list.name" },
ossNumb: { $sum: 1 },
avgValue: { $avg: "$list.price" },
maxValue: { $max: "$list.price" },
minValue: { $min: "$list.price" },
startValue: { $first: "$list.price" },
lastValue: { $last: "$list.price" },
dev: { $stdDevPop: "$list.price" },
},
},
],
async function (err, queryRes) {
if (err) {
throw err;
return err;
}
const queryResToArray = await queryRes.toArray();
resolve(queryResToArray);
}
);
Это текущий результат:
{"_id":{"id":"I1PF32XECEDXKQ","name":"Items1"},"avgValue":29.99,"dev":0,"lastValue":"29.99","maxValue":"29.99","minValue":"29.99","ossNumb":1,"startValue":29.99}
Мне нужно добавить ссылку из «Списка»