Я пытаюсь сделать запрос mongodb, используя группу, но у меня ничего не получается, я использую команду mon goose, чтобы назначить встречу.
мой код:
{
$lookup: {
from: 'manufacturers',
let: {
idmanufacturer: '$$CURRENT.manufacturer'
},
pipeline: [
{
$match: {
$expr:{
$and: { $eq: [ "$_id", "$$idmanufacturer" ] }
}
}
}
],
as: 'manufacturer'
}
},
{
$unwind: {
"path": "$manufacturer",
"preserveNullAndEmptyArrays": true
}
},
{
$match:{
"dateOrder": { $gte: new Date("2019-01-01"), $lt: new Date("2030-01-01") }
}
},
{
$group: {
_id: {date: {$dateToString: { format: "%Y-%m", date: "$dateOrder" }}, manufacturer : "$manufacturer" },
nOrders: {$sum: 1}
}
},
{
$sort : { _id: 1 }
}
результат:
"results": [
{
"_id": {
"date": "2019-12",
"manufacturer": {
"_id": "5d7c39da5f673500121893c2",
"status": "ACTIVE",
"name": "RANDON",
"type": "TRUCK_TRAILER",
"__v": 0
}
},
"nOrders": 1
},
{
"_id": {
"date": "2019-12",
"manufacturer": {
"_id": "5d7c39db5f673500121893d3",
"status": "ACTIVE",
"name": "VOLVO",
"type": "TRUCK",
"__v": 0
}
},
"nOrders": 3
},
{
"_id": {
"date": "2020-01",
"manufacturer": {
"_id": "5d7c39da91712f0013d24ea6",
"status": "ACTIVE",
"name": "CHEVROLET",
"type": "TRUCK",
"__v": 0
}
},
"nOrders": 2
},
{
"_id": {
"date": "2020-01",
"manufacturer": {
"_id": "5d7c39da91712f0013d24ea7",
"status": "ACTIVE",
"name": "GOTTI",
"type": "TRUCK_TRAILER",
"__v": 0
}
},
"nOrders": 2
},
]
я хотел бы, чтобы nOders оставался в коллекции _id, добавляя количество мануктур, сгруппированных по дате в месяцах-году
вот так
{
"_id":{
"date":"2019-12",
[
"manufactures": [
{
"manufacturer":{
"_id":"5d7c39da5f673500121893c2",
"status":"ACTIVE",
"name":"RANDON",
"type":"TRUCK_TRAILER",
"__v":0
},
"nOrders":5
},
{
"manufacturer":{
"_id":"5d7c39da5f673500121893c2",
"status":"ACTIVE",
"name":"RANDON",
"type":"TRUCK_TRAILER",
"__v":0
},
"nOrders":5
}
]
}
]
если кто-то может мне помочь, я буду очень признателен