現在我有一個在流星裏開發的工作消息系統,用戶可以互相發送私信。流星用戶之間的私人消息
服務器看起來是這樣的:
// .. lot of code
Meteor.publish("privateMessages", function() {
return PMs.find({ to: this.userId });
});
PMs.allow({
insert: function(user, obj) {
obj.from = user;
obj.to = Meteor.users.findOne({ username: obj.to })._id;
obj.read = false;
obj.date = new Date();
return true;
}
});
// .. other code
當用戶訂閱privateMessages,他得到一個蒙戈對象,看起來像這樣:
{ "to" : "LStjrAzn8rzWp9kbr", "subject" : "test", "message" : "This is a test", "read" : false, "date" : ISODate("2014-07-05T13:37:20.559Z"), "from" : "sXEre4w2y55SH8Rtv", "_id" : "XBmu6DWk4q9srdCC2" }
我怎樣才能改變對象返回用戶名而不是用戶ID?
返回值在這裏是'user.username',而不是'&& username'。 – Stennie
我可以做到這一點,但它需要循環遍歷所有mongodb文檔,並且會影響性能(例如,當有很多消息時) – user3807877
@Stennie其實我認爲如果'user'真的很糟糕,它會返回值'user.username',而不是我假設你期望的布爾值。 – BenjaminRH