【问题标题】:Using an OR condition in TaffyDB with "lte" and "gte"在 TaffyDB 中使用带有“lte”和“gte”的 OR 条件
【发布时间】:2015-07-11 15:09:30
【问题描述】:

我在 taffy DB 中有如下所示的数据。数据点可以为空:

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

如果我需要名字为“John”或“Jane”的所有行,年龄在 40 到 60 岁之间,查询将是:

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

现在如果我添加年龄也可以小于 20 岁的条件,我无法为此编写查询。

我试过了,但它不起作用:

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

任何帮助将不胜感激。

【问题讨论】:

    标签: javascript taffydb


    【解决方案1】:

    这有助于将其分解为与年龄相关的or 语句和名称和年龄and 语句。

    您想要名称条件年龄条件(包含自己的or

    标准的and 语句通常写为(在伪代码中)为:

    db({name_condition, age_condition})
    

    但也可以写成

    db({name_condition},{age_condition})
    

    需要第二个符号来完成您正在寻找的复合条件。

    因为您的整个 Age 条件实际上是一个简单的 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}}])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-17
      • 2019-01-06
      • 2023-04-09
      • 1970-01-01
      • 2016-12-23
      • 2015-12-27
      • 2012-12-04
      • 1970-01-01
      相关资源
      最近更新 更多