Как отфильтровать связанные модели (отношение hasMany), используя where в LoopBack 3 - PullRequest
0 голосов
/ 24 сентября 2019

Клиент имеет много отношений с заданиями

Фильтрация по свойству верхнего уровня работает, как показано ниже

Customer.find({ include: ["jobs"],where :{username:"mel"} }, function(err, data) {
console.log(data);
cb(null, true, data);
});

Но я не могу фильтровать по свойству второго уровня, в котором есть вложенные данные.

Я пробовал ниже это, но, похоже, не работает

Customer.find({ include: ["jobs"],where :{"jobs.JobTypes":"Plumbing"} }, function(err, data) {
console.log(data);
cb(null, true, data);
});

Я тоже пробовал это.

Customer.find({ include: ["jobs"],where :{"jobs":{"JobTypes":"Plumbing"}} }, function(err, data) {
console.log(data);
cb(null, true, data);
});

Это json Iпытаюсь отфильтровать

 {[{"customer_id": 1,
 "customer_name": "1", 
"realm": "string", 
"username": "mel", 
"email": "mel@gmail.com", 
"emailVerified": false, 
"id": "5d88ac24a823fa5504b2db1f", 
"jobs": [ { "jobId": 1, "CustomerId": 1, "jobType": "Painting", "id": "5d88c4670f527a484c57b09d" }, 
{"jobId": 2, "CustomerId": 1, "jobType": "Plumbing", "id": "5d88c47f0f527a484c57b09e" },
 {"jobId": 3, "CustomerId": 1, "jobType": "Dancing", "id": "5d88c4920f527a484c57b09f" } ]

1 Ответ

0 голосов
/ 25 сентября 2019

Customer.find({
  include: {
    relation: 'jobs',
    scope: {
      where: {
        jobType: 'Plumbing'
      }
    }
  }
}, (err, data) => {
  // TODO handle error
  console.log(data)
})
...