0
我有一個我不想發佈給客戶的字段的Meteor集合。但是,我希望按此字段排序收集。由於服務器的排序順序不會保留在客戶端上,因此如何實現這一點?堅持客戶端的流星發佈功能的順序
我有一個我不想發佈給客戶的字段的Meteor集合。但是,我希望按此字段排序收集。由於服務器的排序順序不會保留在客戶端上,因此如何實現這一點?堅持客戶端的流星發佈功能的順序
經過一點研究,我發現了一個解決方案。我在服務器上進行排序並在發佈之前將文檔轉換爲包含「訂單」字段。
在服務器上:
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});
請添加一個答案,或者是否有完成這個更好的方式發表意見。