問題タブ [aggregation-framework]

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.

0 投票する
1 に答える
1077 参照

mongodb - MongoDBでmapReduceを反復処理することは可能ですか?

私はMongoDBのmapReduceを使用して、友人ネットワークからユーザーのトレンド曲を生成しています。そのため、すべてのユーザーを繰り返し処理し、user_idが友達の配列に存在するかどうかを確認します。存在する場合は、ユーザーの曲を放出してから、放出された曲全体をマージして、すべての友達ネットワークの上位の曲を見つけます。

問題は、コレクション内のすべてのユーザーの(ネットワークトレンド曲)を見つけるために、すべてのユーザーを反復処理する必要があることです。どうすればこれを達成できますか、ネストされたmapReduceのような方法はありますか?または、forループを介してmapReduceを実行するように、アプリケーション層から反復する必要がありますか?

私が使用している現在のmapReduceはこれです:

0 投票する
3 に答える
76440 参照

mongodb - MongoDBの$matchで集計演算子を使用するにはどうすればよいですか(たとえば、$yearや$dayOfMonth)?

created_date属性を持つドキュメントでいっぱいのコレクションがあります。これらのドキュメントを集約パイプラインを介して送信し、いくつかの作業を行いたいと思います。理想的には、インデックスを利用できるように、他の作業を行う前に$ matchを使用してそれらをフィルタリングしたいのですが、新しい$ year / $ month /$dayOfMonth演算子を使用する方法がわかりません。 $match式。

$ project操作で演算子を使用する方法のいくつかの例が浮かんでいますが、パイプラインの最初のステップとして$ projectを配置すると、インデックスにアクセスできなくなるのではないかと心配しています(MongoDBのドキュメントによるとインデックスを利用するには、最初の式は$ matchでなければなりません)。

サンプルデータ:

これを集計パイプラインで実行して、9月に行われたすべての投稿に対する合計コメントを取得したいと思います。

これは機能しますが、一致すると、より複雑なクエリのインデックスにアクセスできなくなります。

0 投票する
1 に答える
1176 参照

mongodb - PostsgreSQL に相当する MongoDB 集計クエリ

この質問には 2 つの部分があります。コレクションの構造は次のとおりです。

_id: MongoID、
agent_id: 文字列、
結果: 文字列、created_on
: ISO DATE、
...その他のフィールド...

パート 1:
望ましい出力: 各 agent_id に対する 1 つの結果、および結果の組み合わせとカウント: PostgreSQL を使用した同等の SQL による TUPLE 表現。

以下のmongoクエリを思いつきました....概念または構文エラーがあると思います。ドキュメントには、パイプラインの早い段階で $match:を使用するように書かれていますが、 $match を単独で実行するとクエリが制限されますが、 $group を追加するとすぐに、多くの結果が得られます。また、複数のフィールドでグループ化する方法を理解できないようです。以下のクエリを編集して、上記の SQL クエリのような結果を得るにはどうすればよいですか?

パート 2) 最初の結果セットは適切ですが、最適ではありません。PostgreSQL を使用すると、次のような結果セットを得ることができます。

配列データ型と set_to_array 関数 (カスタム関数) を使用して Postgresql でこれを行うことができます。Pg 固有の SQL は次のとおりです。

mongodb の同等のデータ構造は次のようになると思います。

mongodb 集約フレームワークでこれらの望ましい圧縮結果を達成することは可能ですか?

0 投票する
3 に答える
69672 参照

mongodb - Mongodb Explain for Aggregation フレームワーク

MongoDB に Aggregation フレームワークの説明機能はありますか? 私はドキュメントでそれを見ることができません。

そうでない場合、集計フレームワーク内でクエリがどのように実行されるかを確認する他の方法はありますか?

I know with find you just do

しかし、集約フレームワークではエラーが発生します

0 投票する
1 に答える
13161 参照

mongodb - MongoDB グループ化

Mongodb でクエリを実行して、場所のユーザーごとの出入りグループの数を見つけるにはどうすればよいですか。上記のコレクションには、ユーザーが出入りできる多くの場所があります。

私はこのようなことを試みていますが、成功していません。こちらを参照してください

0 投票する
1 に答える
1372 参照

mongodb - mapReduce/Aggregation: ネストされたドキュメントの値によるグループ化

次のようなコレクションがあるとします。

次のように、departmentType ごとにカウントを取得したいと思います。

このために、私はすでにほとんどすべてを試しましたが、オンラインで見つけたすべての例は、グループ化がドキュメントのルート レベルのフィールドに対して行われる簡単なものです。代わりに、ここでは departmentType でグループ化しようとしていますが、これまでに見つけたすべてのものを壊しているようです。

Mongoose の集計実装または mapreduce を使用してこれを行う方法についてのアイデアはありますか?

理想的には、count <= 1 のすべての departmentTypes を除外し、結果を departmentType で並べ替えたいと考えています。

よろしくお願いします!

0 投票する
1 に答える
780 参照

mongodb - マングースの集計にフィールドが表示されない

私はすべての異なる部門の数を取得しようとしています。結果にdeptType、deptName、およびカウントを含めたいのですが。グループ化は機能し、結果にはdeptTypeとdCountが表示されますが、deptNameは表示されません。なぜですか?

私のデータは次のようになります。

そして私のマングース集約コマンドは次のようになります:

よろしくお願いします。

0 投票する
3 に答える
19349 参照

mongodb - MongoDB 集計フレームワーク $group は値の配列を返すことができますか?

MongoDB の出力フォーマットの集計関数はどの程度柔軟ですか?

データ形式:

現在、この集計関数を使用して、DateTime の配列、メトリックの配列、およびカウントを返しています。

これは素晴らしく、非常に高速ですが、日時/メトリックごとに1つの配列になるように出力をフォーマットする方法はありますか? このような:

これは、チャートコードが期待するフォーマットであるため、フロントエンドを大幅に簡素化します。

0 投票する
1 に答える
10181 参照

java - Java での MongoDB 集計クエリ

私は Java が初めてで、Java で mongoDB クエリを作成する方法を知りたいです。

ご協力いただきありがとうございます。

0 投票する
7 に答える
32812 参照

mongodb - MongoDB は、2 つのフィールドの文字列を 3 番目のフィールドに連結します

2 つの文字列フィールドの値を連結して 3 つ目のフィールドに入れるにはどうすればよいですか?

私はこれを試しました:

ただし、動作していないようで、スローしnot ok for storageます。

私もこれを試しました:

しかし、これでも同じエラーが表示されますnot ok for storage

アプリケーションではなく、mongo サーバーでのみ連結したい。