2

我有一个应用程序,我想使用 NoSQL 数据库,但我仍然想对两个不同的属性进行范围查询,例如选择时间 T1 和 T2 之间噪声级小于 X 的所有条目。另一方面,我想使用 NoSQL/Key-Value 存储,因为我的数据非常稀疏和多样化,而且我不想为可能遇到的每种新数据类型创建新表。

我知道您不能对 Google 数据存储区(来源)使用多个不等式过滤器。我也知道这个功能即将到来(根据this)。我知道这在 CouchDB ( source )
中也是不可能的。

我想我也或多或少地理解为什么会这样。

现在,这让我想知道..所有 NoSQL 数据库都是这种情况吗?其他 NoSQL 系统能否对两个不同的属性进行范围查询?

例如,Mongo DB 怎么样?我查看了文档,但我发现的唯一内容是他们的文档中的以下片段

请注意,此页面上的任何运算符都可以组合在同一个查询文档中。例如,要查找 j 不等于 3 且 k 大于 10 的所有文档,您可以这样查询:

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

所以他们在两个不同的属性上使用大于和不等于。他们没有说任何关于两个不平等的事情;-)

欢迎任何输入和启发:-)

4

1 回答 1

3

你有没有尝试过?这对我来说很好(查找 k > 1 和 k < 3 的所有行):

db.things.find({k:{$gt:1, $lt:3}});
于 2010-06-17T13:01:35.587 回答