我在 MongoDB 表 1 中有 10000 条记录。
数据如下:
"_id" : ObjectId("5d5e500cb89312272cfe51fc"),
"cities" : [
{
"cityid" : "5d5d2205cdd42d1cf0a92b33",
"value" : "XYZ"
},
{
"cityid" : "5d5d2214cdd42d1cf0a92b34",
"value" : "Rowcliffe"
},
],
查询如下:
{
$unwind: "$cities"
},
{ "$addFields": { "cities.cityid": { "$toObjectId": "$cities.cityid" } } },
{
$lookup: {
from: "cities",
localField: "cities.cityid",
foreignField: "_id",
as: "docs"
}
},
因此,在这里我在 Robo3T 和 mongo shell 中使用查找查询在另一个表中查找 cityid。一切正常。
我得到的结果是0.08 sec10000 条记录。
现在,相同的查询运行在Nodejs 与 mongodb 本机驱动程序,这里我得到结果15 sec.
我不明白为什么这之间存在如此巨大的差异。我不知道我在nodejs中做错了什么。我用mongodb本机驱动程序在nodejs中编写了相同的查询。
请让我知道我做错了什么。
为什么这个nodejs mongodb原生驱动性能这么差?