我想要在我正在执行的查询中获得嵌套的ref的值,但是默认情况下,响应返回其他集合的ref。考虑这个最小的示例;下面是"users"和"coins"集合中的user和coin模型
user { // ref: 123456
name: foo
location: bar
}coin { // ref: 124457
amount: 5457
awardedTo: Ref(Collection("users"), "123456")
}当我运行此查询时
q.Get(q.Ref(q.Collection("coins"), "124457"))响应是这样的:
{
data: {
amount: 5457,
awardedTo: @ref: {id: "123456", collection: {…}}
},
ref: @ref: {id: "124457", collection: {…}},
ts: 1622547855525255
}但是,如何在同一查询中获得嵌套的user的值才能得到这样的响应:
{
data: {
amount: 5457,
awardedTo: {
name: foo,
location: bar
}
},
ref: @ref: {id: "124457", collection: {…}},
ts: 1622547855525255
}我已经阅读了Join的文档,但它在这种情况下没有帮助,也尝试了这种方法,但也不起作用:
q.Let({
coin: q.Get(q.Ref(q.Collection("coins"), '124457'))
},
q.Union(
q.Get(q.Select(["data","awaredTo"], q.Var("coin"))),
q.Var("coins")
)
)发布于 2020-11-25 23:43:40
您可以使用此FQL:
Let(
{
coin: Select(['data'],Get(Ref(Collection("coin"), "1"))),
user: Select(['data'],Get(Select(['awardedTo'],Var('coin'))))
},
Merge(Var('coin'),{awardedTo:Var('user')})
)它从coin中检索数据,提取用户ref并合并在一起。
Luigi
https://stackoverflow.com/questions/65007378
复制相似问题