MongoDB文档中的范围

时间:2015-03-23 02:19:07

标签: mongodb mongodb-query

我想在MongoDB文档中定义范围,以便我可以通过属于特定范围的值进行查询。

例如,如果我们使用这种表示法考虑三个文档的集合,则用[min,max]表示范围:

  {
    temperature: [-100, 10],
    sensation: "Cold"
  },
  {
    temperature: [10, 30],
    sensation: "Mild"
  },
  {
    temperature: [30, 50],
    sensation: "Hot"
  }

我想查询这些范围内的值并查看适合的文档:

temperature = 25.6 -> sensation = "Mild"

我知道我可以将最小值和最大值存储为单独的值,但也许有人可以用更优雅和有效的方式思考在MongoDB中定义可索引范围。

1 个答案:

答案 0 :(得分:1)

您需要使用数据中包含minmax索引的dot notation

db.collection.find(
    { 
        "temperature.0": { "$lt": 25.6 }, 
        "temperature.1": { "$gt": 25.6 }
    }, 
    { "sensation": 1, "_id": 0 }
)