以下代码用于获取“name”或“description”中包含“sometext”的记录。这似乎无效。
有人可以提供正确的方法来实施“或”搜索
侧注:“AND”功能有效。 “或”功能不起作用。 sailsjs&使用sails-mongo版本0.94。
Model.find({
where: {
or: [
{name: {contains: req.param('sometext')}},
{description: {contains: req.param('sometext')}}
]
}, limit: 15, skip: 0, sort: 'name ASC'
}, callback)
答案 0 :(得分:7)
Model.find({
or: [
{ something: 3 },
{ somethingElse: "foo" }
]
}).done(function(err, data) {
});
答案 1 :(得分:1)
在水线中应用OR的另一种方法是,水线水线提供水线方法的链接。 find()和where()方法可以链接如下:
User.find({})
.where({
or: [{
name: {
'contains': searchString
}
}, {
description: {
'contains': searchString
}
}
}]
})
.skip(0)
.limit(15)
.sort({
name : 1
});
通过这种方式,您可以进一步链接更多where
条件。
答案 2 :(得分:0)
这是a known bug,Sails + Waterline 0.9.4。该链接指向提问者打开的问题。一旦修复,它应该使用问题中指定的代码。