2016-02-04 29 views
1
BlogApp.Collections.Blogs = Parse.Collection.extend({ 
    model: BlogApp.Models.Blog, 
    query: (new Parse.Query(BlogApp.Models.Blog)).equalTo("author", "xMQR0A1Us6").descending('createdAt').limit(9) 
}); 

以上似乎不起作用。例如,我可以使用類中已有的列做各種事情,例如.equalTo("productType", "SHIRT"),但我無法鏈接到存在於單獨的類User中的作者。限制查詢以獲取具有特定指針的所有項目(JavaScript - Parse.com)

我該如何限制查詢只從「作者」(一個指針)檢索等於存在於用戶類中的objectId的項目?

型號:

BlogApp.Models.Blog = Parse.Object.extend('MarketDesign', { 

    update: function(form) { 

     if (!this.get('ACL')) { 
      var blogACL = new Parse.ACL(Parse.User.current()); 
      blogACL.setPublicReadAccess(true); 
      this.setACL(blogACL); 
     } 

     BlogApp.category.id = form.category; 

     this.set({ 
      'title': form.title, 
      'url': form.title.toLowerCase() 
      .replace(/[^\w ]+/g,'') 
      .replace(/ +/g,'-'), 
      'category': BlogApp.category, 
      'comment': form.content, 
      'author': this.get('author') || Parse.User.current(), 
      'authorName': this.get('authorName') || Parse.User.current().get('username'), 
      'time': this.get('time') || new Date().toDateString() 
     }).save(null, { 
      success: function(blog) { 
       Parse.history.navigate('#/admin', { trigger: true }); 
       window.location.reload(); 
      }, 
      error: function(blog, error) { 
       console.log(error); 
      } 
     }); 
    } 

}); 

回答

0

我做了一些研究,發現你不能使用.equalTo方法來查詢元素所指向的類:https://coderwall.com/p/-uzbrq/multi-dimensional-querying-parse-com-javascript-sdk

這是沒有答案的,因爲它並沒有解決我的問題,但希望有其他人會看到這一點,有什麼,我試圖完成一個更好的畫面:

BlogApp.Collections.UserDesigns = Parse.Collection.extend({ 
    model: BlogApp.Models.Blog, 
    query: (new Parse.Query(BlogApp.Models.Blog)).matchesQuery("author", Parse.User.current().id).descending('createdAt').limit(3) 
}); 
+0

您是否正在嘗試查找博客作者是*當前用戶*的博客?這很容易(並在我的答案的第一部分中描述)。我的回答的另一部分涉及OP中的id xMQR0A1Us6。該用戶名屬於哪個用戶,你從哪裏得到它?我編輯了我的答案以澄清。要查詢作者==當前用戶,你在這個答案中的代碼非常接近。重點是,我們傳遞* objects *來與指針字段進行比較。 – danh

+0

此外,您網站的帖子處理的是比您想要解決的更復雜的問題。一旦你掌握瞭如何處理指針,你想要做的事情就很簡單而且容易。 – danh

+0

以X開頭的Id只是隨機用戶的對象Id。我正在測試不同的查詢。該查詢將用於用戶的個人資料,顯示他們的所有帖子。所以至少在查看你自己的時候,你會需要當前用戶的objectId。 – santafebound

1

有對象ID之間的區別 - 一個指針 - 這只是一個字符串。要將查詢中的指針列等同,您必須傳遞一個解析對象。因此,舉例來說,找到其中博客作者爲當前用戶...

var user = Parse.User.current(); // no .id, that's important! 
BlogApp.Collections.Blogs = Parse.Collection.extend({ 
    model: BlogApp.Models.Blog, 
    query: (new Parse.Query(BlogApp.Models.Blog)).equalTo("author", user).descending('createdAt').limit(9) 
}); 

如果你只有OBJECTID,然後再建一個物體,就像這樣:

var user = Parse.User.createWithoutData("xMQR0A1Us6"); 

但我不建議這樣做。如果你有一個對象ID,你必須曾經擁有它所屬的整個對象。一般來說,使其成爲的做法不是保留對象ID;相反,保留它們所屬的對象,以便以後可以使用它們的任何部分。

+0

會不會有任何原因一般,爲什麼這行:''VAR用戶= Parse.User.createWithoutData (「xMQR0A1Us6」);''只是殺死我的應用程序? – santafebound

+0

這就是如何從一個ID做一個用戶。驚訝,它導致崩潰 – danh

+0

我在我的控制檯中得到''TypeError:Parse.user未定義''。 – santafebound

相關問題