問題タブ [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 に答える
477 参照

django - 事前に集計されたレポート/コレクションで mongodb 2.2 の集計フレームワークを使用する方法

私は次のように事前に集約されたコレクションを持っています:

call_hourly データでグループ化を行いたいのですが、そのために次の方法を試しましたが、気にしませんでした

次のような結果を得る方法

また

0 投票する
2 に答える
4793 参照

mongodb - MongoDB 集約 $project

Web サーバーのログをMongoDBに保存すると、スキーマは次のようになります。

コレクションを集計パイプラインに渡す前に、オペレーターを使用して$projectこのスキーマを少し再形成しようとしています。基本的に、後で group-by を実行するために使用される「type」という新しいフィールドを追加する必要があります。新しいフィールドのロジックは非常に単純です。

私はそれが次のようなものでなければならないと考えています:

map-reduce を使用してこれを行う方法は知っていますが (「keyf」属性を上記のロジックを実装するカスタム JS 関数に設定することにより)、新しい集計フレームワークを使用してこれを実行しようとしています。式演算子を使用してロジックを実装しようとしましたが、これまでのところ機能しませんでした。どんな助け/提案も大歓迎です!

0 投票する
2 に答える
54952 参照

mongodb - 集計フレームワークを使用した MongoDB でのグループ数

私のMongoDBスキーマが次のようになっているとしましょう:

これは多対多の関係です。たとえば、データは次のようになります。

各所有者が所有する車の数を取得したい。SQL では、これは次のようになります。

この場合、結果は次のようになります。

集約フレームワークを使用して MongoDB を使用してこれと同じことを達成するにはどうすればよいですか?

0 投票する
2 に答える
28197 参照

mongodb - where 条件を使用した集計クエリ

次の SQL クエリを Mongo 用に変換するにはどうすればよいでしょうか。

0 投票する
2 に答える
9771 参照

mongodb - mongodbの配列プロパティの最初のアイテムのみを取得する

コレクション内の次のレイアウトを考えると...

上記のフィールドのみ、および画像の下の最初の結果のみを含む結果を返すにはどうすればよいですか?結果が1つのフラット化されたオブジェクトにあり、画像のみがネストされたオブジェクトであるかどうかは関係ありません。

アグリゲーションフレームワークを調べましたが、探しているものと一致していないようです。結果セットでマップ/リデュースを実行したり、listing_idでグループを実行したりできることはわかっています。グループに頼ったり、リデュースしたりすることなく、より単純なクエリ構造を実現したいと考えています。

現在、集約フレームワークを介してこれが不可能な場合は、ワーキンググループまたはmap-reduceが許容できる答えになります。


編集:最終結果に必要のないプロパティが約50以上あります。$sliceディレクティブでは、必要なフィールドを指定するだけでは不十分なようです。

0 投票する
2 に答える
3295 参照

mongodb - MongoDB Aggregate Framework で列を 1 つに結合する

複数の列にまたがる値でグループ化することは可能ですか?

人々の間のやり取りを日ごとに保存しているとしましょう。次のように、from と to をカウントして追跡します。

これにより、 をグループ化し、 を合計することで、たとえば'bob'任意の 1 つとのすべての相互作用を取得できます。from:count:

ここで、ユーザーのすべてのインタラクションを取得したいので、基本的に と の値でグループ化しfrom:ますto:。本質的に、それが中かcount:どうかに関係なく、名前ごとに合計します。from:to:

[アップデート]

望ましい出力は次のようになります。

最も簡単なのは、新しい列を作成してnames:格納from:し、to:内部に格納$unwindすることですが、それは無駄に思えます。

ヒントはありますか?

ありがとう

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

mongodb - mongoDB 集計: 多次元配列で値を見つける

数日前、MongoDB と集計関数を使用していましたが、探している結果が得られません。

次のようなドキュメントを持つコレクションがあるとします。

最初に、検索のために、検索するコレクション、_id 値、および url 値があります。

意図は、特定の url (例: url: '786527618a424234be70dfb61366') に対するもので、すべてのドキュメント コンテンツをロードせずに、その url に関連付けられた「データ」の値を取得します。取得のみ:

私はいくつかのフォームを使用していますが、成功した結果はありません。例えば:

0 投票する
2 に答える
21408 参照

mongodb - グループ数で $group 結果を取得する

次の構造を持つ「投稿」というコレクションがあると仮定します (実際には、より複雑なコレクションであり、投稿は単純すぎます)。

このコレクションは数十万、おそらく数百万に及ぶと予想されるため、タグで投稿をクエリし、結果をタグでグループ化し、結果をページ分割して表示する必要があります。ここで、集約フレームワークの出番です。私は、aggregate() メソッドを使用してコレクションを照会する予定です。

問題は、ページネーターを作成するには、出力配列の長さを知る必要があることです。私はあなたができることを知っています:

ただし、それは前のパイプライン (最初のグループ) からの出力を破棄します。各パイプラインの出力を保持しながら、2 つの操作を組み合わせる方法はありますか? 集計操作全体の出力を一部の言語で配列にキャストして内容をカウントできることはわかっていますが、パイプライン出力が 16Mb の制限を超える可能性があります。また、カウントを取得するためだけに同じクエリを実行するのは無駄に思えます。

ドキュメントの結果とカウントを同時に取得することは可能ですか? どんな助けでも大歓迎です。

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

mongodb - MongoDB Aggregate $unwind $match using date - 何を見逃したのですか?

私はMongoDBが初めてで、集計を操作しようとしています。私は探していることを部分的に行っていますが、日付に関して奇妙な動作をしています。

MongoDB 情報

バージョン: 2.2.0

オペレーティング システム: Windows 7

目的

「2012-11-22」以降に作成されたすべてのコメントを取得する

例を見てみましょう:

データ


例 1 : 文字列一致で OK

ユーザー「sam」からのすべての「コメント」を返します。

これは、プロパティ 'author' が 'sam' であるコメントのみを返します。


例 2: 日付に関する問題 ?

この集計は (私にとっては) 前のものと同じですが、「作成者」に一致する代わりに、日付プロパティの「作成」に一致します。

しかし、この集計をテストすると、一部のコメントに「2012-11-22」より前の「作成」日付が含まれていることがわかります。たとえば、ID '50ac9fdb53a900bcb4be46d9' のコメントが返されます。


「2012-11-22」より後の日付のコメントのみが期待されます...何かを見逃したと思います...

ありがとうございました

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

mongodb - mongodb集約フレームワークの結果を新しいコレクションにエクスポートします

集計フレームワークの結果を新しいコレクションに保存したいと思います。現時点では、コマンド自体を使用するフレームワークではそれが不可能であることを私は知っています。

シェルに回避策はありますか?