問題タブ [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.

0 投票する
0 に答える
3314 参照

java - 春のmongodb:ルックアップ、プロジェクション、スライスによる集約

ref私はからなるコレクションを持っています

そしてコレクションitem

ここで、「結合」する必要があります。別名lookupon refto を実行しitem、フィールドとasfield1の最後の項目をリターン ドキュメントのトップ レベルに射影して、返す必要があります。arrayarrayItem

mongo シェルを使用すると、これは次のステートメントを使用して完全に機能します。

今、私はこれをJavaでSpringとSpring-MongoDBで実現する必要があります。これは、この集約を使用してみました:

ルックアップは Spring-Mongo 1.9.2 でのみ利用できるため、次のように自分で再構築する必要がありました。

問題は、スライス コマンドがまだ集約のメソッドとして実装されていない (そして 1.9.2 に実装されていない) ため、 DATAMONGO-1457project("slice", -1, 1).as("$arrayItem")で提案されているように呼び出す必要があることです。スライスは単に実行されず、結果は null です。arrayItem

Spring MongoDB 1.8.4 および MongoDB 3.2.8 で Spring 1.3.5 を使用しています。

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

node.js - MongoDB は、Node.js で集計 $lookup または populate を使用して 2 つのコレクションを結合します

2 つのコレクションのスキーマを次に示します。

activity.begin_date , registration.id , registration.emailは同じクエリで欲しい。どのようにできるのか?インターネットでいくつかの解決策を見つけましたが、populate を使用するか、aggregation を使用するかはまだわかりません$lookup(これは新しいようです)。

これが私が試した方法ですが、まったく機能しません。

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

node.js - MongoDB / mongoose でソートし、$push 集約の結果を制限する

$group と $push の結果を並べ替えて制限したいと思います。

オンライン注文のシステムがあるとしましょう。そして、毎年最も注文の多い 3 つの製品を年と製品の量で並べ替えたリストを取得したいと考えています。

返されるオブジェクトは次のようになります。

マングースでは、年ごとにデータをグループ化できます。

それは私にすべての製品名と金額を教えてくれますが、ソートされていません.

グループ化されたデータを並べ替えて制限する方法がわかりません。$sort、$limit、$each を試しましたが成功しませんでした。

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

mongodb - MongoDB 集計: _id で $lookup し、最初の要素の値を取得する

私がするとき$lookup、私の場合はforeignField:"_id"、配列で見つかった要素を取得します。コレクションからの$lookup取得が完了した後の出力からの 1 つのドキュメントを次に示します。fromUsertoUserusers

お気づきfromUserのとおりtoUser、配列です。投影する方法fromUserなどtoUser、配列の代わりに、次のuserNameようにユーザーの .

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

mongodb - Mongodb の 2 つのデータベース間で $lookup 集計を行うことは可能ですか?

私はこのようなことをしようとしています:

userおよびorganization2 つの異なるデータベースにあります。

これが不可能な場合、代替手段は何ですか?

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

c# - C# Fluent Aggregation Framework を使用した MongoDB 例外

C# ドライバーで MongoDB 流暢な集計構文を使用して、非常に単純なグループ化クエリを作成しようとしています。

ドキュメントを作成者別にグループ化し、作成者ごとの数を返しています。著者名を返す必要はなく、カウントのみを返す必要があります。次のコードはコンパイルされますが、実行すると次の例外が発生します。

コマンド集約が失敗しました: グループ集約フィールド名 '$sum' はオペレーター名にすることはできません。

MongoDB バージョン: 3.2.4

MongoDB C# ドライバーのバージョン: 2.2.3.3