簡體   English   中英

在Javascript中查詢parse.com中的指針對象

[英]Query on pointer in parse.com Objects in Javascript

我有一個有用戶指針的公司類。 我希望在Company類上的查詢是這樣的:

檢索公司行,其中User對象的名稱等於'ABC'

那么,我該如何形成這個查詢呢?

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

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

是否可以在單個查詢中編寫此類請求? 謝謝。

您需要首先根據“ABC”的名稱查詢用戶。 然后在該查詢的成功回調中,使用從User查詢返回的objectId對Company表執行查詢。 像這樣的東西:

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

您可以使用內部查詢

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 ...
      }
    });

我應該說查詢將是......

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);
    });
});

假設您的公司集合中有一個名為User且User Collection的字段有一個name字段,那么您可以通過companyQuery.equalTo("User.name");搜索具有用戶名的公司companyQuery.equalTo("User.name");

這適用於Parse 2.1.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM