2017-12-27 38 views
0

のアレイにアクセス、このトランザクションフィールドはプロパティとして参照を有し、今は請求書IDを有しますトランザクション参照と私はどのように参照フィールドの検索トランザクションをループするか分からない。流星Mongoの、私は_idた請求書の収集、(請求書ID)とトランザクション(オブジェクトの配列)を有するオブジェクト

これは私の試みで、

transidsは、すべてのトランザクション_id

const final = Invoices.find({ 
    invoiceId: filter.invoiceID, 
    transactions: { $in: transids } 
}).map(function (obj) { 
    return { 
    text: obj.reference, 
    }; 
}); 

答えて

0

これはむしろmap機能に関連しているが含まれています。 Invoicesの文書を検索したため、マップ機能のobjが現在の請求書文書です。

したがって、見つかったすべてのトランザクションのテキストを取得するには、現在の請求書docのすべてのトランザクションをトラバースする必要があります。

次の例では、各請求書のドキュメントをドキュメントにマッピングします。ここでは、トランザクションドキュメントは参照によってテキストにマッピングされます。

const final = Invoices.find({ 
    invoiceId: filter.invoiceID, 
    transactions: { $in: transids } 
}).map(function (obj) { 
    const transactions = obj.transactions.map(function(transaction){ 
     return { 
      text: transaction.reference, 
     }; 
    }); 
    obj.transactions = transactions; 
    return obj; 
}); 

注:参照が単なる別のドキュメントのIDである場合は、対応するコレクションを呼び出す必要があります。

const ref = ReferenceCollection.findOne(transaction.reference); 
//ReferenceCollection is a placeholder here 
return { 
    text: ref.text, 
}; 
関連する問題