У меня есть коллекция в 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).
Есть ли в любом случае это можно оптимизировать?