2014-11-14 4 views
8

나는 회사의사용자 포인터가 있습니다. 내가 회사 클래스에 원하는 쿼리는 다음과 같다 : parse.com의 포인터에 대한 쿼리 자바 스크립트의 객체

는 'ABC'그래서

, 어떻게이 쿼리를 형성한다 사용자 개체가 동일한 이름을 가진 회사 행을 검색?

var Company = Parse.Object.extend("Company"); 
var query = Parse.Query(Company); 
query.include("User"); 

query.equalTo("name")  ???? 

이러한 요청을 단일 쿼리로 작성할 수 있습니까? 감사합니다. .

+0

혹시 이것에 대한 해결책을 받으셨어요 :

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() { } }); 
jeffdill2

답변

10

먼저 "ABC"의 이름을 기반으로 사용자를 쿼리해야합니다. 그런 다음 해당 쿼리의 success 콜백에서 User 쿼리에서 반환 된 objectId를 사용하여 Company 테이블에 대한 쿼리를 수행합니다. 이런 식으로 뭔가가 :

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 ... 
     } 
    }); 
내가 쿼리가 될 것이라고한다
+0

안녕하세요, 답변 주셔서 감사합니다.이 쿼리가 단일 쿼리에서 가능한지 알아야하기 때문에 질문했습니다. MySql의 내부 쿼리와 비슷합니다. – mango

+1

감사합니다. 매우 도움이됩니다. –

+0

포인터 요소를 만들어야하는 것은 매우 어색하지만 작동하지 않습니다. 감사합니다. – DiamondDrake

2

...

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); 
    }); 
}); 
관련 문제