javascript - 获取对象时如何干净地提取 Parse.Object 关系的记录?

标签 javascript parse-platform

在 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/

相关文章:

javascript - 对象键不使用 firebase 数据库渲染 React 组件

javascript - 使用 ng-repeat (AngularJS) 返回属性列表

javascript - NodeJS JSON 结构

javascript - 使用parse.com云代码发送推送

android - ParseFile 进度回调中断

ios - 正在对常规 Parse 函数发出警告的主线程上执行长时间运行的操作

javascript - 解析云代码request.object.get(key)返回总是undefined

javascript 继承和唯一实例

javascript - 使用 Javascript 为邮件正文的每个单词随机着色

ios - Swift 语法 - linkUserInBackground