mongodb - 在mongodb查询中检查数据是否在两个数字之间
问题描述
这是我应该检查条件的 json
[
{
"name" : "Rice",
"mintemp" : "22",
"maxtemp" : "32",
"minrainfall" : "150",
"maxrainfall" : "300",
"soil" : ""
},
{
"name" : "Wheat",
"mintemp" : "10",
"maxtemp" : "16",
"minrainfall" : "75",
"maxrainfall" : "100",
"soil" : ""
},
{
"name" : "Millets",
"mintemp" : "27",
"maxtemp" : "32",
"minrainfall" : "50",
"maxrainfall" : "100",
"soil" : ""
},
{
"name" : "Grams",
"mintemp" : "20",
"maxtemp" : "25",
"minrainfall" : "40",
"maxrainfall" : "45",
"soil" : ""
},
{
"name" : "Sugar Cane",
"mintemp" : "21",
"maxtemp" : "27",
"minrainfall" : "75",
"maxrainfall" : "150",
"soil" : ""
},
{
"name" : "Cotton",
"mintemp" : "21",
"maxtemp" : "30",
"minrainfall" : "50",
"maxrainfall" : "75",
"soil" : ""
},
{
"name" : "Coffee",
"mintemp" : "15",
"maxtemp" : "28",
"minrainfall" : "150",
"maxrainfall" : "250",
"soil" : ""
}
]
编写查询以显示 mintemp 应该在 16 到 20 之间且 maxtemp 也应该在 16 到 20 之间的所有名称
预期输出:
[
{
"name" : "Wheat",
"mintemp" : "10",
"maxtemp" : "16",
"minrainfall" : "75",
"maxrainfall" : "100",
"soil" : ""
},
{
"name" : "Grams",
"mintemp" : "20",
"maxtemp" : "25",
"minrainfall" : "40",
"maxrainfall" : "45",
"soil" : ""
},
{
"name" : "Coffee",
"mintemp" : "15",
"maxtemp" : "28",
"minrainfall" : "150",
"maxrainfall" : "250",
"soil" : ""
}
]
用 mongoplayground.net 检查它并发送链接
https://mongoplayground.net/p/jV0e00_FQ_P
上面的链接包含 json 并且只输入查询
解决方案
欢迎来到 StackOverlow!
请注意,JSON 格式确实知道integer
数据类型。使用以下 JSON 数据:
[
{
"name": "Rice",
"mintemp": 22,
"maxtemp": 32,
"minrainfall": 150,
"maxrainfall": 300,
"soil": ""
},
{
"name": "Wheat",
"mintemp": 10,
"maxtemp": 16,
"minrainfall": 75,
"maxrainfall": 100,
"soil": ""
},
{
"name": "Millets",
"mintemp": 27,
"maxtemp": 32,
"minrainfall": 50,
"maxrainfall": 100,
"soil": ""
},
{
"name": "Grams",
"mintemp": 20,
"maxtemp": 25,
"minrainfall": 40,
"maxrainfall": 45,
"soil": ""
},
{
"name": "Sugar Cane",
"mintemp": 21,
"maxtemp": 27,
"minrainfall": 75,
"maxrainfall": 150,
"soil": ""
},
{
"name": "Cotton",
"mintemp": 21,
"maxtemp": 30,
"minrainfall": 50,
"maxrainfall": 75,
"soil": ""
},
{
"name": "Coffee",
"mintemp": 15,
"maxtemp": 28,
"minrainfall": 150,
"maxrainfall": 250,
"soil": ""
}
]
从这里开始,您可以使用以下解决方案来查询数据的范围:
db.collection.find({
$or: [
{
mintemp: {
$gte: 16,
$lte: 20
}
},
{
maxtemp: {
$gte: 16,
$lte: 20
}
}
]
})
请参阅我的解决方案建议。
推荐阅读
- python - 使用 python 3.9 创建的 pyenv 虚拟环境使用 python 3.8 setuptools 和 pip 在 pkg_resources 中给出了语法错误
- python - 将 .py 脚本中的变量调用到批处理中
- amazon-web-services - 无法通过 VPCE Endpoint 将私有子网中的 Lambda 连接到 S3
- django - 带有额外配置的 Django DRF 测试 API
- android - 什么可能导致 SharedPreferences 不更新?
- firebase - 如何订购具有 2 个字段的 Cloud Firestore 快照?
- css - NextJS - 无法在 Tailwind CSS 中使用自定义颜色
- javascript - 反应弹簧视差
- python - 显示从 500 个随机数字池中选择 x 数字的次数
- javascript - 您可以将EventListener 添加到另一个元素中的元素吗