transporters.count({ '$and': [ {} ] })
transporters.count({ })
是否一样?
空对象是否可能导致速度问题?
答案 0 :(得分:1)
是的,两个查询都被认为是相同的。
这可以在两个查询的explain output中看到:
> db.test.explain().count({})
{
"queryPlanner": {
"plannerVersion": 1,
"namespace": "test.test",
"indexFilterSet": false,
"winningPlan": {
"stage": "COUNT"
},
"rejectedPlans": [ ]
},
....
和
> db.test.explain().count({$and:[{}]})
{
"queryPlanner": {
"plannerVersion": 1,
"namespace": "test.test",
"indexFilterSet": false,
"winningPlan": {
"stage": "COUNT"
},
"rejectedPlans": [ ]
},
....
两个查询的explain()
输出相同,这意味着两个查询都将以相同的方式执行。