测量Mongo中的查询时间

时间:2016-04-15 13:32:59

标签: mongodb time sql-execution-plan

如何衡量MongoDB中查询的执行时间? 我找到了Mongo-hacker插件,但它看起来像测量查询时间,包括显示所有结果的时间。 在PostgreSQL中我使用Explain Analyze SELECT ...,但我没有在mongo的db.collection.find({smth})中找到任何关于时间的信息.solution()

3 个答案:

答案 0 :(得分:30)

您可以在查询结尾添加.explain("executionStats")

答案 1 :(得分:8)

The easiest way is to set the profiling level in MongoDB: https://docs.mongodb.org/manual/tutorial/manage-the-database-profiler/

Once you've done this, details on all of your queries will be logged to the system profile table.

答案 2 :(得分:0)

使用 Robo 3T,这对我进行了聚合 -

db.getCollection('product_verification').explain("executionStats").aggregate([
{$match: {"company_id":1}},
{$lookup: {
    "from": "product",
    "let": {"company": "$company_id", "code": "$item_code"},
    "pipeline": [
       {$match: {$expr: {$and: [
           {"$eq": ["$company_id", "$$company"]},
           {"$eq": ["$item_code", "$$code"]},
           {"$in": ["$brand_uid",[13, 20]]}
           ]}
           }}
    ],
    "as": "details"
    }}])

当不使用聚合时

db.getCollection('product').find({name: "lenovo"}).explain("executionStats")