Sails.js 水线查询where子句,带2“;或;条款

Sails.js 水线查询where子句,带2“;或;条款,sails.js,waterline,sails-mongo,Sails.js,Waterline,Sails Mongo,我试图用两个or子句编写一个sails吃水线查询,其中两者都必须为真,但似乎不起作用。这是我尝试过的查询,但它仅在其中一个“or”子句满足其条件时才会拉取,我尝试仅在满足两个“or”子句条件而不是一个条件时返回该查询。这是一个bug还是有其他方法可以做到这一点 Employee.find() .where({ or: [ {locationId: employee.currentLocation.id}, {facilityId: employee.facilityId, u

我试图用两个or子句编写一个sails吃水线查询,其中两者都必须为真,但似乎不起作用。这是我尝试过的查询,但它仅在其中一个“or”子句满足其条件时才会拉取,我尝试仅在满足两个“or”子句条件而不是一个条件时返回该查询。这是一个bug还是有其他方法可以做到这一点

Employee.find()
.where({
  or: [
    {locationId: employee.currentLocation.id},
    {facilityId: employee.facilityId, userName:employee.userName,accountOwner: true}
]})
.where({
  or:[
    {employeeId: { startsWith: params.search.value }},
    {fullName: { startsWith: params.search.value }},
    {street: { startsWith: params.search.value }},                              
    {emailAddress: { startsWith: params.search.value }},
    {employeeType: { startsWith: params.search.value }},
    {status: { startsWith: params.search.value }}
]});

如果您使用的是mongo适配器,则可以同时执行以下to和两个OR语句:

Employee.find().where({
  $and: [{
    or: [{
      locationId: employee.currentLocation.id
    }, {
      facilityId: employee.facilityId,
      userName: employee.userName,
      accountOwner: true,
    }],
  }, {
    or:[{
      employeeId: { startsWith: params.search.value }
    }, {
      fullName: { startsWith: params.search.value }
    }, {
      street: { startsWith: params.search.value }
    }, {
      emailAddress: { startsWith: params.search.value }
    }, {
      employeeType: { startsWith: params.search.value }
    }, {
      status: { startsWith: params.search.value }
    }],
  }],
});
这就是手术室的工作方式。