2014-11-14 14 views
8

Mam klasę Firma, która ma użytkownika wskaźników. Zapytanie Chcę na firmy klasy jest tak:Zapytanie o wskaźnik w parse.com Obiekty w JavaScript

Odzyskaj Spółka wiersze gdzie użytkownika obiekt ma nazwę równą „ABC”

Więc jak mam utworzyć tej kwerendy?

Czy można napisać taki wniosek w jednym zapytaniu? Dzięki.

+0

Czy kiedykolwiek uzyskać rozwiązanie tego problemu? – jeffdill2

Odpowiedz

10

Musisz najpierw zapytać o użytkownika na podstawie nazwy "ABC". Następnie w oddzwanianiu powodzenia tego zapytania wykonaj zapytanie w tabeli firmy za pomocą objectId zwróconego przez zapytanie użytkownika. Coś takiego:

var userQuery = Parse.Query('_User'); 
var companyQuery = Parse.Query('Company'); 

userQuery.equalTo('name', 'ABC'); 

userQuery.find({ 
    success: function(user) { 
    var userPointer = { 
     __type: 'Pointer', 
     className: '_User', 
     objectId: user.id 
    } 

    companyQuery.equalTo('user', userPointer); 

    companyQuery.find({ 
     success: function(company) { 
     // WHATEVER 
     }, 
     error: function() { 
     } 
    }); 
    }, 
    error: function() { 
    } 
}); 
+0

Cześć, dziękuję za odpowiedź .. Pytałem, ponieważ musiałem wiedzieć, czy jest to możliwe w pojedynczym zapytaniu. Podobne do wewnętrznych zapytań w MySql. – mango

+1

Dzięki człowiekowi bardzo pomocny! –

+0

To bardzo niewygodne, aby utworzyć element wskaźnika, ale to działa. Dziękuję Ci za to. – DiamondDrake

3

można użyć inner query:

var Company = Parse.Object.extend("Company"); 
var mainQuery = Parse.Query(Company); 

var UserObject = Parse.Object.extend("User"); 
var innerUserQuery = new Parse.Query(UserObject); 
innerBankQuery.equalTo("name", "ABC"); 
mainQuery.matchesQuery("bank", innerBankQuery); 

var ansCollection = mainQuery.collection(); 
    ansCollection.fetch({ 
     success: function(results) { 
     // Do whatever ... 
     } 
    }); 
2

powinienem powiedzieć zapytanie będzie ...

const userQuery = Parse.Query('_User'); 

userQuery.equalTo('name', 'ABC'); 

userQuery.find().then((user) => { 

    const companyQuery = Parse.Query('Company'); 

    companyQuery.equalTo('user', { 
     __type: 'Pointer', 
     className: '_User', 
     objectId: user.id 
    }); 

    companyQuery.find().then((company) => { 
     console.log(company); 
    }); 
});