агрегация и сортировка mongodb на вложенном массиве - PullRequest
0 голосов
/ 05 сентября 2018

Ниже приведена структура моего документа dong монго

{
"product_json": {
"productId": 1,
"productData": [
  {
    "productName": "A",
    "productDetails": [
      {
        "manufacturedDate": "2014-08-09",
        "name": "A1",
        "size": 300
      },
      {
        "manufacturedDate": "2012-08-09",
        "name": "A2",
        "size": 200
      }
    ]
  },
  {
    "productName": "B",
    "productDetails": [
      {
        "manufacturedDate": "2015-08-09",
        "name": "B1",
        "size": 300
      },
      {
        "manufacturedDate": "2017-08-09",
        "name": "B2",
        "size": 200
       }
     ]
   }
 ]
}
}

Мне нужно сгруппировать по "factoryDate" и применить сортировку. Также я не хочу, чтобы весь документ соответствовал. Только соответствующий объект (совпавший объект productDetails).

1 Ответ

0 голосов
/ 05 сентября 2018

попробуйте этот запрос:

db.collection.aggregate(
   [
    {$sort:  {'product_json.productData.productDetails.manufacturedDate': 1}}, 
    { $group:{
      "_id": "$product_json.productData.productDetails.manufacturedDate"
            }
    }
   ]
);
...