Mongodb 在MongoShell上获取文档的最佳方式是哪种
1> db.people.find({$and:[{name:{$gt:{$D}},{name:{$regex:{$a}}]}) 2> find({name:{$gt:D',$regex:a}}) 两个MongoDB查询在MongoShell中提供相同的文档。Mongodb 在MongoShell上获取文档的最佳方式是哪种,mongodb,mongodb-query,Mongodb,Mongodb Query,1> db.people.find({$and:[{name:{$gt:{$D}},{name:{$regex:{$a}}]}) 2> find({name:{$gt:D',$regex:a}}) 两个MongoDB查询在MongoShell中提供相同的文档。 我想知道哪一个是最佳的,为什么两者应该是相同的。如果在第二次查询中运行explain,您可以看到以下内容以及正在使用的$和运算符 > db.people.find( { name : { $gt : "D", $regex : "a
我想知道哪一个是最佳的,为什么两者应该是相同的。如果在第二次查询中运行explain,您可以看到以下内容以及正在使用的
$和运算符
> db.people.find( { name : { $gt : "D", $regex : "a" } } ).explain()
{
"queryPlanner" : {
"plannerVersion" : 1,
"namespace" : "test.people",
"indexFilterSet" : false,
"parsedQuery" : {
"$and" : [
{
"name" : {
"$gt" : "D"
}
},
{
"name" : /a/
}
]
},
两者应该是相同的。如果在第二次查询中运行explain,您可以看到以下内容以及正在使用的$和运算符
> db.people.find( { name : { $gt : "D", $regex : "a" } } ).explain()
{
"queryPlanner" : {
"plannerVersion" : 1,
"namespace" : "test.people",
"indexFilterSet" : false,
"parsedQuery" : {
"$and" : [
{
"name" : {
"$gt" : "D"
}
},
{
"name" : /a/
}
]
},
我不认为你会注意到其中任何一个的性能差异,但第二个更容易阅读——至少对我来说是这样。使用$regex
不能使用索引,除非它以^
开头,我不认为您会注意到其中任何一个的性能差异,但第二个更容易阅读——至少对我来说是这样。使用$regex
不能使用索引,除非它以^
开头