合并了两个集合,其中foreach数据未显示在流星模板中

时间:2015-10-28 13:22:24

标签: mongodb meteor

我是meteor的新手,有两个Mongo系列,userpatient。我已将它们连接起来,在控制台中显示数据但不在html模板中。我可以在控制台中的对象中显示数据,但不能在我的html模板上显示数据,如下图所示:

Patient Screen with console logged data

到目前为止我尝试过:

Template.showpatient.helpers({
    'patientName': function () {
        var tmpCollection = Patients.find() // `enter code here`
        tmpCollection.forEach(function (myDoc) {
            var a = Patients.find({"UserID": myDoc.UserID}).fetch().concat(user.find({"UserID": myDoc.UserID}).fetch())
            return a;
            console.log(a);
        });
    }
})

在模板方面,我正在显示像这样的数据

{{#each patientName}}
    <tr>
        <td>
            {{FirstName}}
        </td>
        <td class="f20">
            {{LastName}}
        </td>

        <td>{{Gender}}</td>
        <td>{{age}}</td>
        <td>{{Email}}</td>
        <td>{{HomePhone}}</td>
        <td>{{CellPhone}}</td>
        <td>{{Fax}}</td>
        <td>{{AddressLine1}}</td>
        <td>{{AddressLine2}}</td>
        <td>{{City}}</td>
        <td>{{State}}</td>
        <td>{{Zip}}</td>
        <td>{{IPAddressCreatedFrom}}</td>
        <td>{{MaritalStatus}}</td>

1 个答案:

答案 0 :(得分:0)

使用集合的 map() 方法迭代光标,访问患者文档并使用 underscore 方法< strong> _.extend() ,以生成UserID字段中加入的患者和用户的合并列表。以下内容证明了这一点:

Template.showpatient.helpers({
    'patientName': function () {
        var merged = Patients.find().map(function(patient){  
            var user = User.findOne({"UserID": patient.UserID}) // get the 
            return _.extend(patient, user); 
        });
        console.log(merged);
        return merged;
    }
})