MongoDB Размотка занимает слишком много времени - PullRequest
0 голосов
/ 21 сентября 2019

У меня есть коллекция в MongoDB с миллионами документов.Они читаются только после создания.документы: {_id: xxx, name: 'John', ..}, ...

Я использую другую коллекцию для хранения ключевых слов для документов. Ключевые слова можно прикреплять или удалять из документов.keyc: {_id: xxx, ..., Keywords: ["key1", ... "keyN"]}, ..

Я хочу список всех документов, которые не имеют определенного ключевого слова.Для этого я использую поиск в запросе агрегации для коллекции документов.


$lookup : {
      from: 'keyc',
      localField: '_id',
      foreignField: '_id',
      as: 'keys'
    }

Когда добавляется этап раскрутки:


    $unwind : {
      path: '$keys',
      preserveNullAndEmptyArrays: true
    }

Этот запрос занимает> 5 минут (~ 480 секунд).

На данный момент моя коллекция ключей пуста (нет разницы в preserveNullAndEmptyArrays true или false).

Есть ли в любом случае это можно оптимизировать?

...