首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LoopbackJS: HasAndBelongsToMany,如何通过关系属性进行查询/过滤?

LoopbackJS: HasAndBelongsToMany,如何通过关系属性进行查询/过滤?
EN

Stack Overflow用户
提问于 2015-10-02 08:29:09
回答 2查看 912关注 0票数 2

我目前正在进行我的第一个Loopbackjs项目,并且面临一个看似简单的问题:假设我有一个模型"Post“和一个模型"Tag”。邮政有许多标签,也属于许多标签。

现在我需要列出所有带有特定标签的帖子。我只是不知道如何使用回收站来创建一个查询来实现这一点。我以为它会像这样工作,但它不会:Posts.find( {where: {tag.id: {inq: [1, 4]}}} );

我非常感谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-04 12:20:18

对一些相关的属性进行过滤并不像应该的那样容易。据我所见,有一个拉请求悬而未决,但它已经开放了很长时间。过滤的唯一方法是在主模型上,所以您可以这样做:

代码语言:javascript
复制
Tags.find({"include":"posts","where":{"id":{"inq":[1, 4]}}})

不幸的是,你需要做额外的工作才能从你得到的结果中得到一个很好的帖子列表。

编辑您也可以获得所有帖子,并且只能使用scope返回与查询匹配的标记,如下所示:

代码语言:javascript
复制
Posts.find({
    "include": { "relation": "tags", 
                    "scope": { 
                        "where": {
                            "id": { "inq": [1, 4]}
                        }
                    }
                }
});

在查询的回调中,可以在返回结果之前用以下代码整理结果:

代码语言:javascript
复制
var finalresult = instance.filter(function(post) {
    return post.toJSON().tags.length > 0;
});

好处是返回的结果按照您的预期格式化。但是,我的第二个示例的性能可能非常差,因为它总是返回所有的帖子,除非在Post级别指定过滤器或分页。它基本上是一个左连接,当你想要一个内部连接时,回收站现在不能这样做。

票数 4
EN

Stack Overflow用户

发布于 2017-02-10 06:40:12

我带着同样的问题来到这里,但是经过一些研究,我找到了这个解决方案。

我将使用一个例子:模型Provincias hasAndBelongsToMany Cantones。

为了得到:/api/Provincias/1/cantone

您可以在您的角度代码中使用:

Provincias.cantones({'id':1});

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32903293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档