我正在尝试从 Mongo/Node 中的术语集合构建类别树,但首先我使用 $in 选择所有树元素:
console.time('termsCol.find');
var terms = await termsCol.find({term_id: {'$in': flatTree}});
console.timeEnd('termsCol.find');
console.time('termsCol.toArray');
terms = await terms.toArray();
console.timeEnd('termsCol.toArray');
这执行:
termsCol.find: 0.162ms
termsCol.toArray: 30.910ms
我已经阅读了有关 SO 上 toArray 性能的帖子,但想知道是否有任何变化,因为这需要我在页面请求期间的大部分时间。
我对该集合有一个索引,它在 ~0.15 毫秒内返回 300 个术语,但是当我必须再等 30 毫秒才能在 js 中进一步使用该数据时,这对我没有帮助。
如果没有办法改进这个 toArray 业务,我可能会创建一个缓存集合并将完整的术语树存储在那里(希望它们适合 16MB)。