mon go группа с $ pu sh, не допускающая дублирования ключа - PullRequest
0 голосов
/ 27 марта 2020

У меня следующая структура документа:

{
readings:[
{"timestamp":"1234","data":"9"},
{"timestamp":"1234","data":"90"},
{"timestamp":"12" "data":"100"}]
}

Можно ли сгруппировать три массива с дублирующимися ключами.

Ожидаемый результат:

{
"readings":["1234","1234","12"]
}

мой запрос:

[
  {
    $group: {
      _id: "null",
      readings: {
        $push: "$readings.timestamp"
      }
    }
  }
];

, но он не позволяет дублировать ключ.

1 Ответ

1 голос
/ 28 марта 2020

readings - это массив, когда вы группируете, вы получаете массив массивов. Если вы сгладите поле readings и сгруппируете его, вы получите желаемый результат.

Попробуйте это:

db.collection.aggregate([
  {
    $unwind: "$readings"
  },
  {
    $group: {
      _id: "null",
      readings: {
        $push: "$readings.timestamp"
      }
    }
  }
])
...