2013-12-19 35 views
1

我有一个数据库模式,其中包含解析中的两个表:contacts & contactRelationships。在解析中使用指针检索对象

联系人包括联系人列表,contactRelationships捆绑用户在一起,形成一个关系,即:

Contacts 
userid: 1, username: Bob 
userid: 2, username: Alice 
userid: 3, username: Chris 


ContactRelationships 
friend_A: 1, friend_B: 2 --> Bob and Alice are friends 
friend_A: 2, friend_B: 3 --> Alice and Chris are friends 

我想建立一个查询,如:“SELECT * FROM ContactRelationships WHERE friend_A = 1 AND friend_B = 2" 。

我现在遇到的问题是,在解析中,我将指针存储到联系人,并且我试图构造一个查询,但是我没有存储在本地数据中的指针(核心数据)。我只有用户标识存储。

有没有办法做到这一点,而不必更改数据库来存储用户标识字符串而不是指针?

回答

3

也许这个答案可以帮助您与您的查询:Parse.com: Find all objects belonging to a user with objectId

基本上你应该设置你的查询,包括嵌套的对象,而不是只把指针。比你可以创建你想要的用户对象,并比较整个对象,而不仅仅是它们的对象ID。

我不知道哪种语言,你的编程,但在云代码(JavaScript)的代码可以是这样的:

// Create your query and set which nested objects you want 
var query = new Parse.Query('ContactRelationships'); 
query.include('friend_A'); 
query.include('friend_B'); 

// Create local instances of your user objects 
var userA = new Parse.User(); 
userA.id = 1; 
var userB = new Parse.User(); 
userB.id = 2; 

// Query your database comparing objects 
query.equalTo('friend_A', fetchedUserA); 
query.equalTo('friend_B', fetchedUserB); 
query.find({ 
    success: function(result) { 
     // Do your thing here 
    } 
});