MongoDB NodeJS Native Driver(mongodb) 对比 Mongo Shell 性能
MongoDB NodeJS Native Driver(mongodb) vs Mongo Shell Performance
我在 MongoDB 中有 10000 条记录 table1.
数据如下:
"_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"
}
},
所以,这里我在另一个 table 中查找 cityid,在 Robo3T 和 mongo shell 中使用查找查询。一切正常。
我在 0.08 秒 内得到 10000 条记录的结果。
现在,nodejs 中的相同查询 m 运行 与 mongodb native driver,这里 m 在 [=34= 中得到结果]15秒.
我不明白为什么 this.I 之间的巨大差异不知道我在 nodejs.I 中做错了什么在 nodejs 中使用 mongodb native 编写了相同的查询driver.
请让我知道我做错了什么。
为什么这个nodejs mongodb native driver性能这么差?
在 Robo3T 中有一个默认的查询限制,所以它花费的时间更少,因为当它获取限制时它会退出。
为避免这种情况,您需要在查询执行中添加以下片段:
// change the limit size, default 50
DBQuery.shellBatchSize = 500000;
我在 MongoDB 中有 10000 条记录 table1.
数据如下:
"_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"
}
},
所以,这里我在另一个 table 中查找 cityid,在 Robo3T 和 mongo shell 中使用查找查询。一切正常。
我在 0.08 秒 内得到 10000 条记录的结果。
现在,nodejs 中的相同查询 m 运行 与 mongodb native driver,这里 m 在 [=34= 中得到结果]15秒.
我不明白为什么 this.I 之间的巨大差异不知道我在 nodejs.I 中做错了什么在 nodejs 中使用 mongodb native 编写了相同的查询driver.
请让我知道我做错了什么。
为什么这个nodejs mongodb native driver性能这么差?
在 Robo3T 中有一个默认的查询限制,所以它花费的时间更少,因为当它获取限制时它会退出。
为避免这种情况,您需要在查询执行中添加以下片段:
// change the limit size, default 50
DBQuery.shellBatchSize = 500000;