MongoDB 3.6 агрегат возвращает firstBatch - PullRequest
0 голосов
/ 03 мая 2018

В MongoDB 3.4 (и все еще в 3.6 в соответствии с документацией) методы collection.aggregate([...]) возвращают курсор. Тогда мы могли бы сделать collection.aggregate([...]).toArray() или .forEach(). И получить или перебрать массив результатов.

Начиная с версии 3.6 (следует отметить, что теперь требуются параметры cursor, которые не указаны в документе), следующая команда:

collection.aggregate(
  [...],
  { cursor: { batchSize: 10 } }
)

Возвращает объект с этой формой:

{
  "cursor": {
    "firstBatch": [...],
    "id",
    "ns"
  },
  "ok": 1,
  "$clusterTime": {...},
  "operationTime": Timestamp(1525344553, 1)
}

Больше нельзя перебирать все результаты, и collection.aggregate([...]).toArray() не является функцией. А нашел несколько вопросов по этому поводу, но ничего по-настоящему актуального. Документ действительно устарел, и я даже не уверен, что это ожидаемое поведение.

Примечание: я запускаю его в mongoshell, но также столкнулся с этими проблемами с последним драйвером узла.

1 Ответ

0 голосов
/ 03 мая 2018

Проблемы возникают от монго-хакера ...

...