Подтвердить что ты не робот

Waterline ORM (sails.js) "где или" в запросе

Я хотел бы знать, как добавить условие "ИЛИ" в запрос ватерлинии. Должно выглядеть:

User.find().where({

    score: { '>': req.params.score},
    status: 'user'
    OR
    status: 'admin'


}).exec(function(err, data){
    ...
});

Итак, мы имеем 2 условия:

1) Score > конкретное число

А 2) статус = пользователь

ИЛИ

1) Статус = admin.

4b9b3361

Ответ 1

Была проблема с базой данных разработки, используемой парусами (критериями ватерлинии). Проблема заключалась в том, как строки и целые числа обрабатывались на парусах. В приведенных ниже критериях запроса theScore обрабатывался как строка. Это было разрешено, поэтому вам просто нужно обновить паруса-диск. Вы можете сделать это, используя npm install sails-disk --force --save. После этого пример ниже должен работать нормально.

Вы можете попробовать этот (Обновлено):

    foo: function(req, res, next) {

    var theScore = req.param('id') || 0;

    User.find().where({

        or: [{

        score: {
            '>': parseInt(theScore),
        },

        status: 'user'
        },

      {  status: 'admin'}]

    }).exec(function(err, data) {
        if (err) return next(err);
        res.json(data);
    });
},

Ответ 2

let userResult=await User.find().where({
score: { '>': parseInt(req.params.score)},
or: [{ status: 'user'},{status: 'admin'}]})