我有一个具有用户指针的公司类别。我想在Company类上的查询是这样的:
检索用户对象的名称等于“ABC”的公司行
那么,我应该如何形成这个查询?
var Company = Parse.Object.extend("Company");
var query = Parse.Query(Company);
query.include("User");
query.equalTo("name") ????
是否可以在单个查询中编写这样的请求?谢谢。
我有一个具有用户指针的公司类别。我想在Company类上的查询是这样的:
检索用户对象的名称等于“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
并且用户集合有一个name
字段,那么您可以通过用户名搜索公司
companyQuery.equalTo("User.name");
这适用于 Parse 2.1.0