带有范围查询的NoSQL数据库

时间:2010-10-09 15:27:11

标签: database-design web-applications nosql

我正在寻找一个允许返回落在指定范围内的记录的NoSQL数据库。

我对NoSQL命名法不太熟悉(因为我仍然只研究它们可行的任何东西)所以我将解释它如何在SQL中完成它。

我需要做的是搜索高于特定分数的记录(比如论坛帖子)。或多或少是这样的:SELECT * FROM posts WHERE score > 2

问题是,当我使用PHP时,是否可以使用任何NoSQL数据库(键值或宽列数据库)?如果没有,NoSQL数据库支持这样的查询吗?

2 个答案:

答案 0 :(得分:2)

您可能需要查看MongoDB。它是流行的 1 ,并支持范围查询:

  

与许多其他非关系数据库解决方案不同,任何字段都可以随时查询。 MongoDB除了精确匹配字段外,还支持范围查询,正则表达式搜索和其他特殊类型的查询。查询还可以包括用户定义的JavaScript函数(如果函数返回true,则文档匹配)。

     

来自:Wikipedia - MongoDB Features

以下是您的SELECT * FROM posts WHERE score > 2查询在Mongo中的显示方式:

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

进一步阅读:


1 请参阅:MongoDB : Production Deployments

答案 1 :(得分:0)

OrientDB支持带有无架构范例扩展的SQL。

您可以执行此查询:

SELECT * FROM posts WHERE score > 2

但底层索引不与运算符不同,使用=(等于)。因此,数百万条记录可能不会那么快,因为它需要扫描整个集群以满足条件(类似于关系世界中的表格)。