我正在使用Loopback框架,并且拥有与modelB处于多对多关系的modelA。 我想知道是否可以将modelB中的多个项目与modelA相关联。 目前有一种方法可以将一个项目与此调用相关联:
FB.api( '/' + id + '/private_replies', 'post',
{ message: message, access_token: token }, function(res) {}
);
有没有办法在批量操作中执行此操作?
答案 0 :(得分:0)
如果我理解你的问题,我认为你可以通过过滤器来做到这一点。 ModelA有很多modelBs,让我假设关系名称是'modelBs'
modelA.find({
where: [your filter option on model A]
include: {
relation: 'modelBs',
scope: {
[your filters on model B]
}
}
})
以宁静的方式:
/modelAs?filter[include]=modelBs&filter[where]....
官方文档可能有所帮助:https://docs.strongloop.com/display/public/LB/Querying+data
答案 1 :(得分:0)
我相信您的模型名称以小写字母开头,但理想情况下应该是ModelA
和ModelB
,然后可以将其实例保存在modelA
和modelB
变量中。
要使用add
方法,您需要先使用ModelA
找到ModelA.findById
的实例,然后将其保存在modelA
变量中,然后使用以下内容代码:
modelA.modelBs.add(modelBFieldsObject, function(err, patient) {
...
});
其中modelBs应该是ModalA.json
文件中的关系名称,如
"relations": {
"modelBs": {
"type": "hasMany",
"model": "ModelB",
"foreignKey": "modelAId",
"through": "ModelAModelB",
"keyThrough": "modelBId"
}
...
我认为应该允许传递modelBFieldsObject
数组来创建多个实例,如
modelA.modelBs.add([modelBFieldsObject, modelBFieldsObject], function(err, patient) {
...
});
提示:为清楚起见,请以camelCase
格式为大写字母及其实例变量命名模型。
参考文献: Methods added to the model。