База данных NoSQL с запросами диапазона - PullRequest
2 голосов
/ 09 октября 2010

Я ищу базу данных NoSQL, которая разрешает запросы, которые возвращают записи, попадающие в указанный диапазон.

Я не очень хорошо разбираюсь в номенклатуре NoSQL (так как я все еще исследую только то, что они будут жизнеспособными), поэтому я объясню, как я это сделал бы в SQL.

Что мне нужно сделать, это поиск записей (скажем, сообщений на форуме), которые выше определенного балла. Примерно так: SELECT * FROM posts WHERE score > 2.

Вопрос в том, когда я использую PHP, возможно ли это сделать с любой базой данных NoSQL (с ключом или с широким столбцом)? Если это невозможно, какие базы данных NoSQL поддерживают такие запросы?

Ответы [ 2 ]

2 голосов
/ 09 октября 2010

Вы можете проверить MongoDB .Он популярен 1 и поддерживает запросы диапазона:

В отличие от многих других решений нереляционных баз данных, любое поле может быть запрошено в любое время.MongoDB поддерживает запросы диапазона, поиск по регулярным выражениям и другие специальные типы запросов в дополнение к точно совпадающим полям.Запросы могут также включать пользовательские функции JavaScript (если функция возвращает true, документ соответствует).

From: Wikipedia - MongoDB Features

Вот какВаш SELECT * FROM posts WHERE score > 2 запрос будет выглядеть в Mongo:

db.posts.find( { score : {$gt: 2} } );

Дополнительная информация:


1 См .: MongoDB: Развертывание производства

0 голосов
/ 13 октября 2010

OrientDB поддерживает SQL с расширениями для парадигмы без схемы.

Вы можете выполнить этот запрос:

SELECT * FROM posts WHERE score > 2

Но базовый индекс не используется соператоры разные по = (равно).Так что с миллионами записей это может быть не так быстро, потому что для проверки условия необходимо просканировать весь кластер (что-то похожее на таблицу в реляционном мире).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...