1> db.people.find({$ and:[{name:{$ gt:" D"}},{name:{$ regex:" a"}}]});
2 - ; db.people.find({name:{$ gt:" D",$ regex:" a"}});
MongoDB查询都在mongo shell中提供相同的文档。 我想知道哪一个是OPTIMAL,为什么?
答案 0 :(得分:0)
两者都应该是一样的。如果您对第二个查询运行说明,则可以看到以下内容和正在使用的$and
运算符
> db.people.find( { name : { $gt : "D", $regex : "a" } } ).explain()
{
"queryPlanner" : {
"plannerVersion" : 1,
"namespace" : "test.people",
"indexFilterSet" : false,
"parsedQuery" : {
"$and" : [
{
"name" : {
"$gt" : "D"
}
},
{
"name" : /a/
}
]
},