2016-09-30 3 views
0

У нас есть модель данных в loopback, где у Клиентов будет отношение hasMany к Orders, и когда я обращаюсь к клиентам, заказы будут поступать в массив для этого конкретного клиента, и если я хочу использовать существующие параметры, заданные loopback, какой вариант мне нужно использовать для запроса, чтобы получить всех клиентов с определенными именами заказов в состоянии И.Запрос реляционной модели Loopback

Заранее за вашу помощь.

ответ

0

Если я правильно понимаю, вы имеете в виду что-то подобное Customers.find({where: {orderId = 1}}, function (err, cb) ??

, если вы хотите использовать и/или условия, вот пример:

Post.find({where: {and: [{title: 'My Post'}, {content: 'Hello'}]}}, 
      function (err, posts) { 
      ... 
}); 

Вы можете найти более подробную информацию в этой ссылке: https://docs.strongloop.com/display/public/LB/Where+filter#Wherefilter-and/or

0

Я думаю, что вы ищете фильтр [include] Функциональность: http://loopback.io/doc/en/lb2/Include-filter.html

Проблема Я нашел здесь не поддерживаемые внешние ключи. Вы можете определить основной (несколько полей) первичный ключ в самой модели, но вы не можете определить отношения на основе составного ключа {field1, field2, ...], настраиваемого обходного пути.

0

Вы можете запросить, но он будет похож на left join like SQL.

По следующему запросу:

Customer.find({ 
    where:{}, 
    include: { 
    relation: 'orders', 
    scope: { 
     where: { 
      name: 'order name' 
     } 
    } 
    } 
}, (err, callback)) 

приводит:

customers array with orders as array 
ex: [ 
    { 
     name: customer A, 
     orders: [{...},{...}] 
    }, 
    { 
     name: customer B, 
     orders: [] //That does not match condition in scope 
    } 
    ] 

MOREINFO:Loopback doc reference

Но если вы хотите именно то использовать нативный запрос Монго:

CustomerCollection = Customer.getDataSource().connector.collection("Customer"); 

и пожарный сборщик (Запрос на родной монго)

Смежные вопросы