1

在 Meteor 的“Parties”示例中,有一个 Party 模型,它由以下模式的文档表示:

Each party is represented by a document in the Parties collection:
  owner: user id
  x, y: Number (screen coordinates in the interval [0, 1])
  title, description: String
  public: Boolean
  invited: Array of user id's that are invited (only if !public)
  rsvps: Array of objects like {user: userId, rsvp: "yes"} (or "no"/"maybe")

我想找到所有缔约方,并根据特定用户按“rsvps”排序。例如,像这样:

Meteor.find({sort: {rsvps: {user: 'myself', rsvp: 'yes'}}})

但当然,这不起作用,因为它不遵循排序说明符 syntax。此外,在同一文档中有一条注释说 Minimongo(客户端上的本地 Mongo 实现)不支持对子键进行排序。但是,我不认为问题只是对子键进行排序,因为我需要找到一个特定的子键,然后对不同的兄弟子键(无论他们是否参加,rsvps.rsvp子键)进行排序。

是否有任何方法或解决方法来实现排序集合?

4

2 回答 2

2

minimongo 排序文件包含以下注释:

// XXX sort does not yet support subkeys ('a.b') .. fix that!

所以很遗憾,目前不支持。虽然我有这个拉取请求,您可以从中获取所需的部分来实现此功能。

在这里查看:

https://github.com/meteor/meteor/pull/443

兰德凡布雷达

于 2012-11-16T00:01:18.950 回答
1

另一种选择是使用 '.fetch()' 从光标中获取数据,然后使用类似 underscore.js 的 _.sortBy 对生成的数组进行排序。

然后可以将生成的自定义排序数组传递给车把,并将在 Meteor 中保留其反应特性。

于 2013-03-23T16:46:17.043 回答