Meteor で、Mongo 以外のソース (具体的には IMAP) からコレクションを公開しています。
Meteor.publish("search_results", function(user, password, str) {
var self = this;
res_msg = [];
Imap.connect({... });
Imap.search(str, resultcb);
for (var i = 0; i < res_msg.length; i++) {
self.set("s_results", Meteor.uuid(), {uid: res_msg[i].uid, date: res_msg[i].date, headers:res_msg[i].headers});
}
self.flush();
self.complete();
self.flush();
console.log("total messages : ", res_msg.length);
});
これはうまくいきます。ただし、2 回目のパスでは、新しいアイテムがコレクションに追加されます。Mongo 以外のコレクションからレコードを削除する方法はないようです。
this.unset を使用すると、属性が変更され、レコードが削除されないようです。
クライアント側でもサーバー側でも collection.remove({}) を使用できません。