2016-09-16 7 views
0

私は、クライアントに公開したくないフィールドを持つMeteorコレクションを持っています。しかし、私はコレクションをこのフィールドでソートするようにしたいと思います。サーバーからの並べ替え順序はクライアント上で維持されないため、これをどのように達成できますか?クライアント上で流星の公開機能の順序を維持する

答えて

1

少しの研究の後、私は解決策を見つけました。私はサーバー上でソートを行い、公開前に「注文」フィールドを含むように文書を変換します。サーバー上で

Meteor.publish('usersOrderedByPrivateField', function() { 
    var cursor = Meteor.users.find({}, {sort: {privateField: 1}); 
    var order = 0; 
    var self = this; 
    cursor.fetch().forEach(function (doc) { 
     doc.order = order++; 
     delete doc.privateField; 
     self.added("users", doc._id, doc); 
    }); 
    this.ready(); 
} 

とクライアント上:

Meteor.subscribe('usersWithPrivateFieldOrdering'); 
Meteor.users.find({},{sort:order:1}); 

が答えを追加したり、これを達成する良い方法があるかどうコメントしてください。

関連する問題