如何在通话中仅检索部分文档

时间:2015-10-30 06:00:20

标签: mongodb meteor mongodb-query

我只需要检索文档的一部分并通过帮助程序调用它,这样我就可以多次渲染子模板,因为我需要从db中提取的部分是一个对象本身的数组。我有以下字段。我需要对我的助手做的只是检索一个特定文档的ordersDispatch数组,该文档将由tripNumber字段唯一调用。

我已经尝试了几件事但是没有任何东西接近于只有orderDisptach字段中的对象数组以一种方式返回,帮助器可以使用它来为数组中的每个对象渲染我的子模板。 / p>

{
                tripNumber:                 companyRecord.lastTripNum + 1,
                custID:                     $('input:hidden[name=orderCustomerId]').val(),
                custContact:                $('input:text[name=customerContact]').val(),
                custEmail:                  $('input:text[name=customerEmail]').val(),
                trailerSealNum:             $('input:text[name=trailerSealNum]').val(),
                orderBroker:                $('input:text[name=orderBroker]').val(),
                orderEquipment:             $('input:text[name=orderEquipment]').val(),
                orderLoadNum:               $('input:text[name=orderLoadNum]').val(),
                orderPlacedDate:            $('input:text[name=orderPlacedDate]').val(),
                orderPrivateNotes:          $('textarea[name=orderPrivateNotes]').val(),
                orderPublicNotes:           $('textarea[name=orderPublicNotes]').val(),


                orderCurrency:              $("input[name=orderCurrency]:checked").val(),
                orderCharges:               $('input:text[name=orderCharges]').val(),

                orderFUELCheck:             $('input:checkbox[name=orderFUELCheck]').is(':checked'),
                orderFUELPerc:              $('input:text[name=orderFUELPerc]').val(),
                orderFUELTotal:             $('input:text[name=orderFUELTotal]').val(),

                orderGSTCheck:              $('input:checkbox[name=orderGSTCheck]').is(':checked'),
                orderGSTPerc:               $('input:text[name=orderGSTPerc]').val(),
                orderGSTTotal:              $('input:text[name=orderGSTTotal]').val(),

                orderPSTCheck:              $('input:checkbox[name=orderPSTCheck]').is(':checked'),
                orderPSTPerc:               $('input:text[name=orderPSTPerc]').val(),
                orderPSTTotal:              $('input:text[name=orderPSTTotal]').val(),

                orderTAXCheck:              $('input:checkbox[name=orderTAXCheck]').is(':checked'),
                orderTAXPerc:               $('input:text[name=orderTAXPerc]').val(),
                orderTAXTotal:              $('input:text[name=orderTAXTotal]').val(),

                orderTotalCharges:          $('input:text[name=orderTotalCharges]').val(),

                ordeBlockInvoicing:         $('input:checkbox[name=ordeBlockInvoicing]').is(':checked'),

                orderExtraCharges:          orderExtraCharges,
                orderPickups:               puLocations,
                orderDeliveries:            delLocations,
                orderDispatch:              dispatchLocations,

                createdDate: new Date(),
                createdUser: currentUser.username

任何有助于建立帮助的人都会非常感激,因为我是meteor和mongo的新手。

1 个答案:

答案 0 :(得分:1)

以下助手应该能满足您的需求:

Template.oneTrip.helpers({
  orderDispatch: function(tn){
    return Trips.findOne({ tripNumber: tn }).orderDispatch;
  }
});

Trips.findOne({ tripNumber: tn })会为您提供单个文档,.orderDispatch会返回orderDispatch键的值,在您的情况下,该值为数组。

HTML:

<template name="oneTrip">
  {{#each orderDispatch this._id}} <!-- assuming you've already set the data context to an individual order -->
    {{this}} <!-- now the data context is an element of the orderDispatch array -->
  {{/each}}
</template>