假设我有'用户'具有属性' 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) { //... });
这显然不对。
答案 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}