3

我有这个 Backendless 表:PostsComments

Posts 有一列comments与 Comments 表具有一对多的关系。

我试图获得commentslatestOrder 的第一行为。

目前,我有这个查询:

  let query = BackendlessDataQuery()
  let queryOptions = QueryOptions()
  queryOptions.pageSize = size
  queryOptions.related = ["comments", "comments.user", "user", "media"]
  query.queryOptions = queryOptions
  // Used PostObject since it is already mapped using `mapTableToClass`
  backendlessInstance.persistenceService.of(PostObject.ofClass()).find(
    query,
    response: { backendlessPostsList in
      let backendlessPostsListOfOffset = backendlessPostsList.getPage(offset)
      guard let postObjects = backendlessPostsListOfOffset.getCurrentPage() as? [PostObject] else {
        reject(BackendlessError.InvalidTypeForObject(name: "Post"))
        return
      }
      return postObjects
    },
    error: { fault in
      // TODO Find a way to convert a Fault to ErrorType
      print("Server reported an error (1): \(fault)")
    }
  )

我目前正在对视图模型中的 Post.comments 进行排序正在反转它。Post.comments.reverse().

有没有办法明确地对commentsBackendless 级别进行排序?

4

2 回答 2

3

使用 时您没有选项related,因此您应该只将其用于一对一关系,而不是多对多关系。如果你有一对多的关系,那就没问题了。

因此,您应该单独请求评论,以便您可以指定特定的页面大小和排序顺序。请注意,当您指定要按 ( created) 排序的变量时,您还可以添加ascdesc指定排序方向 (so created desc)。

于 2016-06-08T09:01:30.377 回答
0

您可以使用排序功能。

let sortedComments = Post.comments.sort { $0.date > $1.date }

当然,您的评论需要发布日期字段才能正常工作。

于 2016-06-08T07:03:07.620 回答