Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何循环阅读MongoDB集合中的所有文档?_Mongodb - Fatal编程技术网

如何循环阅读MongoDB集合中的所有文档?

如何循环阅读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,

My
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