如何循环阅读MongoDB集合中的所有文档?
My如何循环阅读MongoDB集合中的所有文档?,mongodb,Mongodb,Myxyz_services集合包含三个文档: xyz_services { service: "XYZ for under 1,500 sqft properties", minSize: 0, maxSize: 1500, price: 100, _id: "9LnnnJx3itBts8Bgp" } { service: "XYZ for 1,501 - 2,000 sqft properties", minSize: 1501,
xyz_services
集合包含三个文档:
xyz_services
{
service: "XYZ for under 1,500 sqft properties",
minSize: 0,
maxSize: 1500,
price: 100,
_id: "9LnnnJx3itBts8Bgp"
}
{
service: "XYZ for 1,501 - 2,000 sqft properties",
minSize: 1501,
maxSize: 2000,
price: 125,
_id: "kmMnxuBfB2Qimdwkc"
}
{
service: "XYZ for 2,001 - 3,000 sqft properties",
minSize: 2001,
maxSize: 3000,
price: 150,
_id: "jE8cPwRwkPmvRqZdB"
}
我从表单提交中获得一个整数size
假设var size=2500
我需要遍历此xyz_services
集合中的三个单独文档中的每一个,看看哪个文档匹配
minSize对于这个特殊的文档,您不需要遍历集合中的所有文档。
您可以写下一个简单的查询,该查询将只返回满足此条件的所有文档的价格minSizeFYI这是我用于返回值“150”的完整代码
您可以使用以下代码段
findOne({“minSize”:{$lte:2500},“maxSize”:{$gte:2500}},{U id:0,价格:1})
你不需要循环。Google mongodb的$lte
和$gte
查询操作符顺便问一下,{id:0,price:1}
在查询结束时是什么意思?我猜它只返回price
字段,而不返回\u id
字段?这是查询的投影部分,就像我们在SQL查询中选择后编写的一样。默认情况下,mongodb返回与查询匹配的整个文档,但在您的情况下,您只需要返回price,因此我们要求mongodb只返回price。Mongodb在每个投影中都返回它的主键,即“_id”,因此我们明确要求Mongodb不要返回它。Doh,快告诉我吧。明白了。谢谢
db.xyz_services.find({"minSize" : {$lte : 2500}, "maxSize" : {$gte : 2500}}, {_id : 0, price : 1})
db.xyz_services.findOne({"minSize" : {$lte : 2500}, "maxSize" : {$gte : 2500}}, {_id : 0, price : 1}).price