Условия нескольких неравенств (запросы диапазона) в NoSQL

StackOverflow https://stackoverflow.com/questions/3061732

Вопрос

У меня есть приложение, где я хотел бы использовать базу данных NoSQL, но я все еще хочу делать запросы в диапазоне в течение двух разных свойств, например, Выберите все записи между T1 и T2, где Noiselevel меньше х. Отказ С другой стороны, я хотел бы использовать магазин NoSQL / Key-Value, потому что мои данные очень редкие и разнообразные, и я не хочу создавать новые таблицы для каждого нового данных, который я мог бы потитаться.

Я знаю, что вы не можете использовать несколько фильтров неравенства для хранения Google (источник). Я также знаю, что эта функция приходит (согласно это).
Я знаю, что это также невозможно в Couchdb (источник).

Я думаю, что я также более или менее понимаю, почему это дело.

Теперь это заставляет меня удивляться .. Это так со всеми базами данных NoSQL? Может ли другие системы NoSQL составляют диапазон запросов на два разных свойства?

Как насчет, например, Mongo DB? Я посмотрел в документацию, но единственное, что я нашел, был следующим фрагментом в их документ:

Обратите внимание, что любой из операторов на этой странице может быть объединен в том же документе запроса. Например, чтобы найти весь документ, где j не равен 3 и k, больше 10, вы запрашиваете так:

db.things.find({j: {$ne: 3}, k: {$gt: 10} });

Таким образом, они используют больше, чем и не равно на двух разных свойствах. Они ничего не говорят о двух неравенствах ;-)

Любой вход и просвещение приветствуется :-)

Это было полезно?

Решение

Ты пробовал? Это работает нормально для меня (находит все строки с K> 1 и K <3):

db.things.find({k:{$gt:1, $lt:3}});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top