我想在MongoDB文档中定义范围,以便我可以通过属于特定范围的值进行查询。
例如,如果我们使用这种表示法考虑三个文档的集合,则用[min,max]表示范围:
{
temperature: [-100, 10],
sensation: "Cold"
},
{
temperature: [10, 30],
sensation: "Mild"
},
{
temperature: [30, 50],
sensation: "Hot"
}
我想查询这些范围内的值并查看适合的文档:
temperature = 25.6 -> sensation = "Mild"
我知道我可以将最小值和最大值存储为单独的值,但也许有人可以用更优雅和有效的方式思考在MongoDB中定义可索引范围。
答案 0 :(得分:1)
您需要使用数据中包含min
和max
索引的dot notation。
db.collection.find(
{
"temperature.0": { "$lt": 25.6 },
"temperature.1": { "$gt": 25.6 }
},
{ "sensation": 1, "_id": 0 }
)