我有在我之前制作的数据库结构,并不是首选更改它。 要将指针对象包含在主查询中,我们使用'include'。 在我的查询中,我需要两次查询 _User 集合:
my_main_query
-> userId
-> some_collection -> another_collection -> userId
(在这个查询中,我得到了不同的用户信息,比如一个人问了什么,另一个人回答了问题。)
在两个集合中使用相同名称 userId 作为指向 _User 集合的指针。
当我构建RestAPI调用时,我尝试了:
'include' => 'userId, some_collection, another_collection, userID'
或
'include' => 'userId, some_collection.another_collection.userID'
和
'include' => 'some_collection.another_collection.userID, userId'
但每次我的查询只返回一个用户信息,而不是同一个查询。
也许有人遇到这个问题并且可以帮助构建这样的查询。重命名字段不是首选。
答案 0 :(得分:0)
关于在列类型数组中收集指向用户的指针,如下所示:
[{"__type":"Pointer","className":"_User","objectId":"$id1"}, {"__type":"Pointer","className":"_User","objectId":"$id2"}...]
您可以使用RestApi POST或将上述内容输入属性类型ARRAY。称之为myclass.followingUsrs。
您可以执行其他查询,例如
&include=followingUsrs
然后使用type = pointer< _User>的单独属性并命名myclass.createdBy用POST或PUT填充
"createdBy":{"__type":"Pointer","className":"_User","objectId":"$id"}
您可以使用
查询/包含它 include=createdBy
请注意,在单个查询中,您只需提供comma seperated list
即可请求“包含”多种类型的指针属性- 编辑 - 没有空白
include=createdBy,followingUsrs
上面的休息查询将内联完整的createdBy._User以及在Array = followingUsrs中内联EACH用户指针。
答案 1 :(得分:0)
经过多次测试后,我找到了解决方案,通常很简单: 这不起作用:
'include' => 'userId, some_collection.another_collection.userId'
但是这个会起作用:
'include' => 'userId,some_collection.another_collection.userId'
只是WHITESPACE ......