1
我正在Meteor中構建一個簡單的聊天客戶端。聊天消息被存儲在聊天集合,其具有包含來自其它用戶的ID和哪個用戶它是ID的消息,以及該消息,像這樣在:如何從流星中的二級集合中查找
{
"_id" : "3Wo3EHYG8oPCS4TCc",
"message" :
{
"from" : "oSiKCdvCHGrfnfQoT",
"to" : "ESXbJXeWmNanz7zKq",
"text" : "Hello"
}
}
用戶是商店在收集用戶,它具有ID以及用戶名:
meteor:PRIMARY> db.users.find()
{ "_id" : "oSiKCdvCHGrfnfQoT", "username" : "user1" }
{ "_id" : "ESXbJXeWmNanz7zKq", "username" : "user2" }
我有一個HTML頁面,使用下面的模板助手會顯示這樣的
<body>
<h1>Test</h1>
{{> hello}}
</body>
<template name="hello">
{{#each messages}}
From {{message.from}} to {{message.to}}: {{message.text}}
{{/each}}
</template>
消息:
Chats = new Mongo.Collection("chats");
Users = new Mongo.Collection("users");
import './main.html';
Template.hello.helpers({
messages:function(){
return Chats.find();
}
})
這將創建下列輸出:
Test
From oSiKCdvCHGrfnfQoT to ESXbJXeWmNanz7zKq: Hello
然而,在HTML頁面,我想查找的,而不是顯示其原始ID的用戶的用戶名。我知道我可以將用戶名存儲在Chats集合中,但我寧願保持清潔。當然,我也可以在模板助手函數中進行查找,並創建一個模擬消息的新數據結構,但用用戶名替換ID。但是,這是一個相當笨拙的解決方案,我寧願在HTML端進行查找。這可能嗎?