Sailsjs / Waterline中的数据库查询

时间:2015-02-26 09:37:34

标签: database sails.js waterline

假设我有'用户'具有属性' age'可以设置或不设置。我有3个用户A,B和C:

  

答:{年龄:20},

     

B:{年龄:10},

     

C:{}

使用Sails我想选择所有年龄最小为15岁的用户,同时包括所有未指定年龄的用户。在这种情况下,查询将返回A(因为年龄> 15)和C(因为年龄未指定)。

我还没有找到发布此类查询的方法。从我收集到的内容看起来应该是:

var searchConditions = {
  age: { 
    or: [
      { '>': 15 },
      { '==': 'undefined' },
    ]
  }
}
Users.find(searchConditions, function foundUsers(err, users) { //... });

这显然不对。

3 个答案:

答案 0 :(得分:1)

您是否可以将年龄默认为-1,然后检索年龄为-1的所有用户以及年龄> 15岁的用户?

答案 1 :(得分:0)

你应该可以说:

{'==': null}

答案 2 :(得分:0)

好的,总而言之,我会为该特定查询做些什么(用户3350692也暗示了解决方案):

var searchConditions = {
  or: [
    { 
      age: { '>': 15 }
    },
    { age: -1 }
  ]  
}
Users.find(searchConditions, function foundUsers(err, users) { //... });

在用户模型上我应该有年龄属性:

age: { type: 'integer', defaultsTo: -1}