問題タブ [mongodb-aggregation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mongodb - mongo 集計 $lookup クエリで配列の最初のフィールドを使用して、ドキュメントを照合します
配列フィールドの 0 番目の値を使用して、Mongo 集計 $lookup クエリを使用して販売ドキュメントで一致を見つけたいと考えています。これが私のクエリです:
結果 :
このクエリは一致を返しますが、チェックすると一致しません。なぜこれが起こっているのかわかりません。クエリから0番目の部分を削除すると、空の配列が返されます。このような:
saleCategoryId も、categorysKey の配列を含む配列フィールドです。
助けてください。
mongodb - 異なる集計クエリの結果を組み合わせる
3 つの異なるコレクションに基づく 3 つの異なる MongoDb Aggregate クエリがあり、それぞれが会社のその部門のスコアを計算しているcombine / $project
場合、個々の集計結果を保存せずに、クエリを使用して結果を 1 つの結合されたエグゼクティブ レポートにする方法を教えてください。
本質的に、異なるコレクションに対して並列集計パイプライン クエリを実行し、中間結果を保存せずに最終パイプラインで結果を結合できますか?
mongodb - MongoDB 集約パイプラインの問題
私は mongoDB を初めて使用し、集約パイプラインについて理解するのに苦労しています。
株式取引に関する情報を保持するデータベースを作成しました。私のポートフォリオ コレクションの 1 つのドキュメントを簡略化したバージョンでは、次のようになります。
]
そのため、毎日、運用資産 (オウム) と現在の価格で保持しているすべてのポジションのリストを追跡しています。私がしなければならないことは、ポートフォリオの毎日の純および総エクスポージャーをオウムのパーセンテージとして計算することです。ネットエクスポージャーは単純に次のとおりです。
sum(shares*price*fx)/aum
すべての株の上。総エクスポージャーは次のとおりです。
abs(shares*price*fx)/aum
(負のポジションはショート ポジションを意味します)。集計フレームワークを使用して、これを単一のクエリとして実行する必要があります。私は多くのクエリを試しましたが、どれもうまくいかないようで、暗闇の中をさまよっているだけです. 誰でもガイダンスを提供できますか?
私のクエリは次のようになります
クエリは実行されますが、計算された値はゼロです。すべてのデータを 2 次元のテーブルにフラット化する必要があるため、投影が期待どおりに機能しません。
mongodb - MongoDB - $group を使用して $lookup の後に $unwind ネストされた配列を巻き戻す
MongoDB のアグリゲーションは、刻一刻と指数関数的に複雑になります!
私は、ネストされた配列に関しては、巻き戻されたネストされた配列から各オブジェクトのby theを$unwind
実行します。私の最後の試みは、で巻き戻しを元に戻すことです。ただし、元の埋め込み配列を、元のプロパティ名と、各ドキュメントの残りの元の直接のプロパティと共に再構築することはできません。$lookup
_id
$group
これまでの私の試みは次のとおりです。
私が得るものは次のようなものです:
この結果には 2 つの問題があります。
- 元のネストされた配列に対して単一の要素配列が返されたため、結果
universities
はそれぞれ 1 つのオブジェクトの配列の配列になります。オブジェクトの単なる配列である必要があります。$lookup
$profile.universities
- 結果
universities
は、 の下にネストされた元の場所に配置されprofiles
ます。演算子profile.universities
を使用しているため、オリジナルがそのままである理由はわかっています。$first
この背後にある私の意図はprofile
、元のネストされたuniversities
配列を保持することと併せて、 の元のプロパティをすべて保持することです。
最終的に、私が必要とするのは次のようなものです:
$group
これを達成する代わりに使用できる別の演算子はありますか? それとも、目的を$group
間違って理解していますか?
編集:これはコンテキストの元の投稿です: Mongo $lookup が左外部結合の場合、一致しないドキュメントが除外されるのはなぜですか?