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中存在的作者。
如何限制查询只检索“作者”(指针)中的项目,该项目等于User类中存在的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 :(得分:1)
objectId(只是一个字符串)与指针之间存在区别。要在查询中等同Pointer列,您必须传递一个parse对象。因此,例如,找到作者是当前用户的博客......
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作为练习;相反,保留它们所属的对象,以便以后可以使用它们的任何部分。
答案 1 :(得分: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)
});