2

両方が真でなければならない 2 つの 'or' 句を含むセイル ウォーターライン クエリを作成しようとしていますが、うまくいかないようです。これは私が試したクエリですが、「または」句の1つがその基準を満たしている場合にのみプルされます.1つではなく、両方の「または」句の基準が満たされた場合にのみ返そうとしています。これはバグですか、それとも別の方法がありますか?

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 }}
]});
4

1 に答える 1

0

mongo アダプターを使用している場合は、次のようにして 2 つの OR ステートメントを一緒に AND することができます。

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 }
    }],
  }],
});
于 2016-08-11T14:08:25.390 に答える