如何在MongoDB中按指定数值比较条件筛选返回符合要求的文档
实现方案
对应查询条件
你需要根据用户选择的参数,使用对应MongoDB查询过滤规则:
- 选条件1(
value≥ 1000):匹配规则为{ value: { $gte: 1000 } } - 选条件2(
value≤ 2000):匹配规则为{ value: { $lte: 2000 } }
完整查询语句(直接返回要求格式)
使用MongoDB聚合管道可以一步输出你要的嵌套结构,不需要额外二次处理数据:
选择条件1时的查询
db.你的集合名.aggregate([ // 按条件过滤符合要求的文档 { $match: { value: { $gte: 1000 } } }, // 把所有符合要求的文档拼成data数组 { $group: { _id: null, data: { $push: { value: "$value" } } } }, // 去掉默认返回的_id字段,只保留data { $project: { _id: 0, data: 1 } } ])
选择条件2时的查询
db.你的集合名.aggregate([ { $match: { value: { $lte: 2000 } } }, { $group: { _id: null, data: { $push: { value: "$value" } } } }, { $project: { _id: 0, data: 1 } } ])
输出示例
以你给出的示例源数据为例,选择条件1时输出如下:
{ "data": [ { "value": 1000 }, { "value": 3000 }, { "value": 1500 } ] }
选择条件2时输出如下:
{ "data": [ { "value": 1000 }, { "value": 1500 } ] }
内容的提问来源于stack exchange,提问作者bc110402922
相关产品推荐
相关产品推荐

