MongoDb и Mongoose Общий размер документов в файлах, соответствующих максимальному размеру документа .exceeds

Учитывая следующий код:

Classes.aggregate([
      {
        $lookup: {
          from: "files",
          localField: "classId",
          foreignField: "_id",
          as: "cl"
        }
      }, {
        $unwind: "$files"
      },
      {
        $project: {
          "_id": 1,
          "files.file": 1
        }
      },
      {
        "$group": {
          "_id": "$_id"
        }
      }
    ]).exec...

Я получаю следующую ошибку:

Общий размер документов в файлах, соответствующих { $match: { $and: [ { _id.str: { $eq: null } }, {} ] } }, превышает максимальный размер документа

Я читал другие статьи о StackOverflow, но, похоже, не могу решить.

У меня есть коллекция классов с полем _id в mongodb (ObjectId)

Оператор соединения пытается присоединиться к коллекции файлов по classId (строка)

Обратите внимание, что стабильные файлы содержат поле, называемое буфером, которое содержит данные base64. (большой размер поля)

Заранее спасибо, Джадсон


person Judson Terrell    schedule 20.08.2017    source источник
comment
кажется, что ваше поле данных base64 превышает 16 МБ (общий размер документа в mongodb)   -  person Elmer Dantas    schedule 20.08.2017
comment
Но мне нужны эти поля. Что я могу сделать тогда?   -  person Judson Terrell    schedule 20.08.2017
comment
Ваш $unwind неверен. Как объяснено в связанный дубликат добавление $unwind — правильное решение, однако вы указали неверный путь к полю. Это должно быть { "$unwind": "$cl" }, что было бы выходным массивом, указанным с помощью "as": "cl", и примененное действие unwinding фактически создает эти отдельные документы вместо массива. Использование неправильного пути отменяет требуемое изменение.   -  person Neil Lunn    schedule 21.08.2017
comment
Нил, я напечатал там. После исправления я все еще получал ошибку. Я читал, что в другой статье о переполнении стека пытались это сделать, но это не сработало. Я возвращал пустой массив :-( если бы я мог привести вас к публикации правильного ответа, я с радостью приму помощь. Очень признателен. Дайте мне знать, если вы нужно больше деталей.У людей разные способы обучения, и я за один очень визуальный, поэтому просмотр кода для этого конкретного обстоятельства очень поможет   -  person Judson Terrell    schedule 21.08.2017