我正在尝试衡量mongoDB的查找与聚合性能。 有没有办法比较聚合与匹配并找到查询性能。
目前我正在使用javascript来衡量它。 如
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");
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");
但它对我来说似乎并不合适。 有人可以建议其他方法来做到这一点。
答案 0 :(得分:0)
db.collection.explain()
操作可以返回以下信息:
如何用find()解释?
db.assets.explain("executionStats").find({
"catalog_id":"f1a7669654584a42958d9589cf37d173",
"albums":{"$elemMatch":{"id":"5f7938ce6e2718eb776f82474f2e093f","order":{"$exists":false}}}
});
如何用aggregate()解释?
db.assets.explain("executionStats").aggregate([
{
"$match":{
"catalog_id":"f1a7669654584a42958d9589cf37d173",
"albums":{"$elemMatch":{"id":"5f7938ce6e2718eb776f82474f2e093f","order":{"$exists":false}}}
}
}
]);
答案 1 :(得分:-1)
kubectl proxy --address=clusterIP --port 8001 --accept-hosts '.*'
方法用于在单个集合中查找数据作为您的条件。而当您需要使用一个或多个表执行find()
时使用aggregation
。我并不是说您无法使用joins()
,但如果您可以使用aggregation
获取数据,则无需使用find()
。如果使用`populate
aggregation