Условия множественного неравенства (диапазон запросов) в NoSQL - PullRequest
2 голосов
/ 17 июня 2010

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

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

IМне кажется, я также более или менее понимаю, почему это так.

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

Как насчет,например монго БД?Я посмотрел в документации, но единственное, что я нашел, это следующий фрагмент в их document :

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

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

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

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

1 Ответ

3 голосов
/ 17 июня 2010

Вы пробовали? Это прекрасно работает для меня (находит все строки с k> 1 и k <3): </p>

db.things.find({k:{$gt:1, $lt:3}});
...