2016-05-13 5 views
0

Ich habe DB-Struktur, die vor mir gemacht wurde und es ist nicht bevorzugt, es zu ändern. Um das Pointer-Objekt in die Hauptabfrage einzufügen, verwenden wir 'include'. In meiner Anfrage ich zweimal benötigen Abfrage _User Sammlung:Ist es möglich, eine solche Abfrage auf Parse.com mit Rest-API zu erstellen

my_main_query 
-> userId 
-> some_collection -> another_collection -> userId 

(in dieser Abfrage ich verschiedene Benutzer Informationen zu erhalten, wie man etwas und fragte einen anderen, der beantwortet).

In beiden Sammlungen verwendet denselben Namen userId als Zeiger auf _User Sammlung.

Wenn ich RestAPI Anruf aufzubauen, habe ich versucht:

'include' => 'userId, some_collection, another_collection, userID' 

oder

'include' => 'userId, some_collection.another_collection.userID' 

und

'include' => 'some_collection.another_collection.userID, userId' 

Aber jedes Mal, wenn meine Abfrage gibt nur einen Benutzerinformation, nicht sowohl in dieselbe Abfrage.

Vielleicht jemand mit diesem Problem konfrontiert und könnte helfen, solche Abfrage zu erstellen. Felder umbenennen nicht bevorzugt.

+0

Es gibt 2 Sammlung, und Sie möchten Objekte aus diesen 2 Sammlung in Abfrage erhalten? Abfrage kann nur auf nur eine URL (eine Sammlung) zielen – ChunTingLin

Antwort

0

bezüglich der Sammlung von Zeigern auf Benutzer in einer Spalte Typ Array, das wie folgt aussieht:

[{"__type":"Pointer","className":"_User","objectId":"$id1"}, {"__type":"Pointer","className":"_User","objectId":"$id2"}...] 

Sie RestApi verwenden können, die oben auf eine Eigenschaft Typ ARRAY POST oder PUT. Nenne es myclass.followingUsrs.

Sie eine Pause Abfrage tun können, umfassen wie

&include=followingUsrs 

Dann mit separater Eigenschaft mit type = Zeiger < _User> und den Namen myclass.createdBy Sie es mit POST füllen oder PUT von

"createdBy":{"__type":"Pointer","className":"_User","objectId":"$id"} 

und Sie können abfragen/include es mit

include=createdBy 

Beachten Sie, dass in einem si ngle Abfrage, können Sie verlangen, eine „include“ mehr als eine dieser Arten von Zeiger-Eigenschaften durch nur ein comma seperated list

Versorgung --EDIT-- kein Leerzeichen

include=createdBy,followingUsrs 

Die oben in einer Ruhe Abfrage Inline den vollständigen createdBy._User sowie Inlining JEDER Benutzerzeiger in der Array = followingUsrs.

+0

Dank Robert, es ist Interesse Lösung und es könnte in einigen Fällen implementiert werden. Aber deine Antwort enthält kleine Sache, die es falsch macht :) (bitte meine Antwort überprüfen). – user2443795

+0

Antwort wird pro Kommentar vom OP geändert. –

0

Nach Anzahl der Tests wurde ich gefunden Lösung, und es war wie immer ganz einfach: Das wird nicht funktionieren:

'include' => 'userId, some_collection.another_collection.userId' 

Aber dies funktioniert:

'include' => 'userId,some_collection.another_collection.userId' 

nur WHITESPACE. ..

Verwandte Themen