2015-03-23 3 views
1

Я хочу определить диапазоны в документе MongoDB, чтобы я мог запрашивать значения, принадлежащие определенному диапазону.Диапазоны в документах MongoDB

Например, обозначающее диапазон, [мин, макс], если мы рассмотрим набор из трех документов, используя эти обозначения:

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

Я хотел бы сделать запросы значений в пределах этих диапазонов и увидеть, документы подходят:

temperature = 25.6 -> sensation = "Mild" 

Я знаю, что я могу хранить минимальное и максимальное значения в виде отдельных значений, но, возможно, кто-то может думать в более элегантный и эффективный способ определения индексируемых диапазонов в MongoDB.

ответ

1

Вам необходимо использовать dot notation с индексом min и max значение inn your array.

db.collection.find(
    { 
     "temperature.0": { "$lt": 25.6 }, 
     "temperature.1": { "$gt": 25.6 } 
    }, 
    { "sensation": 1, "_id": 0 } 
) 
Смежные вопросы