2015-07-11 30 views
0

我的taffy数据库中的数据看起来像这样。数据点可以是空白:在TaffyDB中使用“lte”和“gte”的OR条件

{"first_name":"Sam", "last_name": "Andrew", "age":26 ... } 
{"first_name":"Jane", "last_name": "Doe", "age": 19 ... } 
{"first_name":"John", "last_name": "Deer", "age":51 ... } 
. 
. 
. 

,如果我需要的所有行,其中第一名称是“约翰”或“简”,年龄为40和60之间,查询将是:

{ 
    "name":["John","Jane"], 
    "age":{"lte":60,"gte":40} 
} 

现在,如果我添加年龄可能小于20的条件,那么我无法为此写入查询。

我都试过,但它不工作:

{ 
    "name":["John","Jane"], 
    "age":[{"lte":60,"gte":40},{"lte":20}] 
} 

任何帮助将不胜感激。

回答

1

它有助于打破下来到年龄相关or语句和的名称和年龄and声明。

你想要的名称条件年龄条件(其中包含了or

标准and语句正常写入(在伪代码)为:

db({name_condition, age_condition}) 

但可以也可写成

db({name_condition},{age_condition}) 

需要使用第二个符号来完成要查找的复合条件。

因为您的整个年龄条件实际上是一个简单的or语句,所以您将它放入数组中。

[ 
    {age:{"lte":20}}, 
    {age:{"gte":40,"lte":60}} 
] 

要么年龄小于20 年龄为40和60。

之间的名称条件是直截了当

{first_name:["John","Jane"]} 

把两个物体一起成and这样的陈述:

db({first_name:["John","Jane"]},[{age:{"lte":20}},{age:{"gte":40,"lte":60}}]) 
相关问题