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'}}})

ただし、もちろん、これはソート指定子の構文に従わないため、機能しません。また、同じドキュメントには、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

もう 1 つのオプションは、「.fetch()」を使用してカーソルからデータを取得し、underscore.js の _.sortBy などを使用して結果の配列をソートすることです。

結果として得られるカスタムの並べ替えられた配列は、ハンドルバーに渡すことができ、そのリアクティブ機能も Meteor で保持されます。

于 2013-03-23T16:46:17.043 に答える