3

下面的代码用于获取在“名称”或“描述”中包含“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)
4

3 回答 3

7
Model.find({
  or: [
    { something: 3 },
    { somethingElse: "foo" }
  ]
}).done(function(err, data) {

});
于 2013-09-20T11:16:14.187 回答
1

还有另一种在水线中应用 OR 的方法,sails waterline 提供了水线方法的链接。find() 和 where() 方法可以链接如下:

User.find({})
.where({
    or: [{
        name: {
            'contains': searchString
        }
    }, {
        description: {
            'contains': searchString
        }
      }
    }]
})
.skip(0)
.limit(15)
.sort({
    name : 1
});

通过这种方式,您可以链接更多的where标准。

于 2016-11-21T13:15:58.953 回答
0

这是Sails+Waterline 0.9.4 的一个已知错误。该链接指向提问者打开的问题。修复后,它应该使用问题中指定的代码工作。

于 2013-09-26T20:13:06.303 回答