我在MongoDB中有一个包含数百万个文档的集合。 一旦创建,它们将是只读的。 docs:{_id:xxx,name:'John',..},...
我正在使用另一个集合来维护文档的关键字 可以在文档中附加或删除关键字。 keyc:{_id:xxx,...,关键字:[“ key1”,...“ keyN”]},..
我想要所有没有特定关键字的文档的列表。 为此,我在文档集合的聚合查询中使用查找。
$lookup : {
from: 'keyc',
localField: '_id',
foreignField: '_id',
as: 'keys'
}
添加展开阶段时:
$unwind : {
path: '$keys',
preserveNullAndEmptyArrays: true
}
此查询耗时超过5分钟(约480秒)。
此时我的键集合为空(preserveNullAndEmptyArrays的真或假没有区别)。
无论如何,这是否可以优化?