编写下面的代码是为了获取在"name"或"description"中包含"sometext"的记录。这似乎不起作用。
有人可以提供正确的方法来实施"OR"搜索吗
旁注:"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)
Model.find({
or: [
{ something: 3 },
{ somethingElse: "foo" }
]
}).done(function(err, data) {
});
在水线中应用OR还有另一种方法,帆水线提供水线方法的链接。find() 和 where() 方法可以按如下方式链接:
User.find({})
.where({
or: [{
name: {
'contains': searchString
}
}, {
description: {
'contains': searchString
}
}
}]
})
.skip(0)
.limit(15)
.sort({
name : 1
});
通过这种方式,您可以进一步链接更多where
条件。
这是 Sails+Waterline 0.9.4 的已知错误。该链接转到提问者打开的问题。修复后,它应该使用问题中指定的代码工作。