【发布时间】:2019-04-11 03:52:24
【问题描述】:
我有下面的代码 sn -p 来运行聚合命令。
console.time("something");
const cursor = await db.collection("main").aggregate([
{
$match: {
mainField: mainField,
},
},
{
$lookup: {
from: "reference",
localField: "referenceId",
foreignField: "referenceField",
as: "something",
},
},
]);
const results = await cursor.toArray();
console.timeEnd("something");
我有一个便宜的云服务器用于测试目的(2gb ram,1 cpu 等),存储 mongodb。
我将 10k 文档插入主集合和参考集合(因此插入了 20k 文档)。
不使用索引并运行上述聚合查询需要 30 多秒才能返回结果。
如果我在参考集合上有以下索引并运行上述聚合查询,则结果大约需要 1.2 秒。
await db.collection("reference").createIndex({ referenceField: 1 });
【问题讨论】:
标签: mongodb