我已经为所有4个命令运行了解释 . 以下是mongoDB在内部创建的过滤器:

db.product.find({ results : { product : "xyz" , score : 5 } }).explain()

"filter" : {

"results" : {

"$eq" : {

"product" : "xyz",

"score" : 5

}

}

}

db.product.find({ "results.product" : "xyz" , "results.score" : 5 }).explain()

"filter" : {

"$and" : [

{

"results.product" : {

"$eq" : "xyz"

}

},

{

"results.score" : {

"$eq" : 5

}

}

]

}

db.product.find( { results : { $elemMatch : { product : "xyz" , score : { $eq : 5} } } } ).explain()

"filter" : {

"results" : {

"$elemMatch" : {

"$and" : [

{

"product" : {

"$eq" : "xyz"

}

},

{

"score" : {

"$eq" : 5

}

}

]

}

}

}

db.product.find( { results : { product : "xyz" , score : { $eq : 5} } } ).explain()

"filter" : {

"results" : {

"$eq" : {

"product" : "xyz",

"score" : {

"$eq" : 5

}

}

}

}

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐