Loopbackjs 过滤器内部不工作的环回包括

Loopbackjs 过滤器内部不工作的环回包括,loopbackjs,loopback,angular-loopback,Loopbackjs,Loopback,Angular Loopback,我已经编写了这个过滤器,我正在传递给我的端点,它是用Loopbackjs编写的 const filter = { where: { status: { neq: "processed" } }, include: [ { relation: "vendor", scope: { fields: ["id", "name"] } },

我已经编写了这个过滤器,我正在传递给我的端点,它是用Loopbackjs编写的

  const filter = {
            where: { status: { neq: "processed" } },
            include: [
                { relation: "vendor", scope: { fields: ["id", "name"] } },
                {
                    relation: "pickupLocation",
                    scope: { where: { cityId: "5ee134da0138634c27a6e1dd" } },
                },
            ],
            limit: 200,
            skip: 0
        };
        return this.http.get<IPickupRequest[]>(
            `${environment.url}/PickupRequests?filter=${encodeURIComponent(
                JSON.stringify(filter)
            )}`
        );
const过滤器={
其中:{状态:{neq:“已处理”},
包括:[
{关系:“供应商”,作用域:{字段:[“id”,“名称”]},
{
关系:“pickupLocation”,
范围:{其中:{cityId:“5ee134da0138634c27a6e1dd”},
},
],
限额:200,
跳过:0
};
返回this.http.get(
`${environment.url}/PickupRequests?过滤器=${encodeURIComponent(
stringify(过滤器)
)}`
);

pickupRequest
集合包含与pickupLocation集合的
belongsTo
关系。pickupLocation集合包含一个名为
cityId
的属性,我试图在该属性上应用where子句,但它不起作用。此外,我还希望在pickupRequest对象中获取pickupLocation字段,以便在表中使用它们。简单的include可以很好地工作,并根据需要显示数据,但是当应用
where
子句时,它就不起作用,并且只显示pickupRequest对象,但不在其中包含pickupLocation数据。此外,由于我使用分页,我需要它每次准确返回200条记录。我做错什么了吗?这里的确切问题是什么?我在这里使用的是环回3,您希望在
pickupLocation
关系上应用的
where
过滤器的行为类似于SQL的内部联接。但是,在环回中,无论何时在查询中执行
包含
,框架都会在内部对每个模型的集合或表进行两次单独的查询,并将它们组合起来;有效地使它像SQL的左外连接一样工作。因此,在上面的查询中,
PickupRequest
列表将包含所有对象,而不管过滤器在
pickupLocation
模型的何处。
pickupLocation
关系将仅出现在
PickupRequest
记录中,其中
cityId=“5ee134da0138634c27a6e1dd”
和其余位置,该关系将是一个
null
对象


为了克服这个问题,我想说的是,根据
{cityId:“5ee134da013863c27a6e1dd”}
pickupLocation
模型上进行主要查询,其中筛选并包含
PickupRequest
模型。

任何帮助都将不胜感激