在 Parse JavaScript 指南中,关于 Relational Data 的主题据说
By default, when fetching an object, related Parse.Objects are not fetched. These objects' values cannot be retrieved until they have been fetched.
他们还继续指出,当 Parse.Object
上存在 relation
字段时,必须使用该关系的 query().find()
方法。文档中提供的示例:
var user = Parse.User.current();
var relation = user.relation("likes");
relation.query().find({
success: function(list) {
// list contains the posts that the current user likes.
}
});
我理解这是一件好事,就 SDK 设计而言,因为它可以防止人们不必要地获取数百条相关记录。仅获取您当前需要的数据。
但是,就我而言,我知道永远不会有超过十条相关记录被提取。我希望每次都能获取这些记录,因为它们将在 View 中呈现。
是否有更简洁的方法通过扩展 Parse.Object
来封装此功能?
最佳答案
您是否尝试过使用 include("likes")?
我不像 ObjC API 那样熟悉 JavaScript API。所以在下面的示例中,我不确定“objectId”是否是您需要使用的实际键名...
var user = Parse.User.current();
var query = new Parse.Query(Parse.User);
query.equalTo(objectId, user.objectId);
query.include("likes")
query.find({
success: function(user) {
// Do stuff
}
});
一般来说,您想考虑扭转你们的关系。我不确定向用户对象添加自定义值是个好主意。考虑创建一个 Like 类型并将其指向用户。
Parse 文档中的示例: https://parse.com/docs/js_guide#queries-relational
var query = new Parse.Query(Comment);
// Retrieve the most recent ones
query.descending("createdAt");
// Only retrieve the last ten
query.limit(10);
// Include the post data with each comment
query.include("post");
query.find({
success: function(comments) {
// Comments now contains the last ten comments, and the "post" field
// has been populated. For example:
for (var i = 0; i < comments.length; i++) {
// This does not require a network access.
var post = comments[i].get("post");
}
}
});
关于javascript - 获取对象时如何干净地提取 Parse.Object 关系的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25689615/