【发布时间】:2017-06-20 10:16:18
【问题描述】:
我正在尝试衡量 MongoDB 的查找与聚合性能。 有什么方法可以比较聚合与匹配并查找查询性能。
目前我正在使用 JavaScript 来衡量它。
如find():
var start = (new Date).getTime();
db.assets.find({
"catalog_id":"f1a7669654584a42958d9589cf37d173",
"albums":{"$elemMatch":{"id":"5f7938ce6e2718eb776f82474f2e093f","order":{"$exists":false}}}
});
var end = (new Date).getTime();
print("elapsed " + (end - start) +" msec");
作为aggregate():
var start = (new Date).getTime();
db.assets.aggregate([
{
"$match":{
"catalog_id":"f1a7669654584a42958d9589cf37d173",
"albums":{"$elemMatch":{"id":"5f7938ce6e2718eb776f82474f2e093f","order":{"$exists":false}}}
}
}
]);
var end = (new Date).getTime();
print("elapsed " + (end - start) +" msec");
但这对我来说似乎不对。 有人可以建议其他方法吗?
【问题讨论】:
-
当聚合管道仅包含
$match阶段时,find()和aggregate()之间没有区别。查看这些查询中的explain(),以更好地了解这里发生的情况 -
我已经尝试过解释。但在聚合的情况下它不会给出执行时间。想要测量两个查询所花费的时间。
标签: mongodb mongodb-query aggregation-framework