Как уменьшить список документов в список значений в MongoDB - PullRequest
1 голос
/ 24 февраля 2020

Я запустил конвейер агрегации со стадией поиска в моей базе данных, отфильтровывая нужные мне данные и объединяя их с данными из другой коллекции. В конце концов я получил что-то вроде этого:

{ 
    "_id" : ObjectId("5e53b804a72bb4185c682a00"), 
    "sample_ids" : [
        {
            "sample" : ObjectId("5e4fac16ad485744e34a799c")
        }, 
        {
            "sample" : ObjectId("5e4fac18eaf0df39564a799b")
        }, 
        {
            "sample" : ObjectId("5e4fac19ad485744e34a799e")
        }, 
        {
            "sample" : ObjectId("5e4fac16eaf0df39564a799a")
        }
    ]
}

Мне интересно, можно ли «сжать» или «уменьшить» список документов до единого списка значений, чтобы я получите что-то вроде этого:

{ 
    "_id" : ObjectId("5e53b804a72bb4185c682a00"), 
    "sample_ids" : [
        ObjectId("5e4fac16ad485744e34a799c"),
        ObjectId("5e4fac18eaf0df39564a799b"),
        ObjectId("5e4fac19ad485744e34a799e"),
        ObjectId("5e4fac16eaf0df39564a799a")
    ]
}```

1 Ответ

0 голосов
/ 24 февраля 2020

Просто так:

db.collection.aggregate([
   {
      $project: {
         sample_ids: "$sample_ids.sample"
      }
   }
])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...