問題タブ [fluent-mongo]

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 投票する
2 に答える
1896 参照

c# - フィルタリング/順序付けを使用して埋め込みコレクションを照会する MongoDb

通常のブログ エンジンを想像してみましょう (ほんの一例です)。モデルは、コメント「コレクション」が埋め込まれた Posts コレクションで構成されます。

ここで、Post データと一緒に最近のコメントを 10 件だけ取得する必要があります。

  1. これを行う最善の方法は何ですか?
  2. これは価値のある最適化ですか? (ネットワークトラフィックの削減は別として)

PS 私は公式の C# ドライバー + fluent-mongo を使用していますが、正当な理由で linq をあきらめることができます。

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

c# - mongodb (FluentMongo) のカテゴリ内の製品数

mongodb のパフォーマンスの問題を修正しようとしていますが、問題の 1 つは、システムがページの読み込みごとに各カテゴリの製品数を読み取ることです。プロジェクトは C# と FluentMongo を使用してデータベースにアクセスします。(そして、これは私の考えではありませんでした:)

理想的には、そのような categoryid : count of products を 1 つの要求として取得したいと考えています。

各製品は複数のカテゴリに属する​​場合があります。

私が改善しようとしているコードは次のとおりです。

そしてそれは何百回も実行されます....

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

mongodb - FluentMongo が突然エラーをスローする

FluentMongo と MongoDBCSharpDriver を使用しています。私のコードはしばらくの間正常に動作していましたが、MongoCSharpDriver を更新した後、データベースにクエリを実行しようとすると、このエラーが発生し続けます。

「識別子はクラスに対してのみ登録できます。インターフェース MyLib.Services.IRepoData に対しては登録できません。」

インターフェイスIRepoDataは、MongoDB に保存されたすべてのオブジェクトに使用するものです。すべての _id を定義するだけです。壊れている行は次のとおりです。

誰でもこれに光を当てることができますか?ラムダを使用せずに使用する.SingleOrDefault()と、問題なく動作し、ラムダを渡してそれを壊します。

編集

これが役立つ場合...

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

c# - fluent-mongo の実行時に「実際の」mongo クエリを取得する方法

私のアプリケーションを実行するとき、使用される生のクエリを画面に書き込む必要があります。

これから取得するために、利用可能なメソッド/拡張メソッドはありますか:

次のようなもの:

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

mongodb - FluentMongo を使用してドキュメントを削除および更新する

FluentMongo を使用してドキュメントの削除と更新を処理するクリーンな方法を誰かが持っているかどうか疑問に思っていましたか?

FluentMongo を使用してリポジトリ レイヤーを作成しています。ただし、ドキュメントを削除または更新できないことは厄介です。おそらく、適切なリポジトリ パターンを維持しながら、これを処理する方法を逃したのでしょうか?

ありがとうございました。

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

mongodb - 子を取得する Mongo クエリ

私は流暢なモンゴを使用しています。

私はエンティティを持っています

ListItem は別のエンティティです

したがって、メイン エンティティ SomeList には List があり、エンティティ ListItem にも List があります。

ListItem からリストを取得する mongo クエリが必要です。

次のクエリを使用しています

Query.EQ(“ListItems.ListItemId”, listItemId) を実行すると、メインの SomeList エンティティが得られます。次の行で where 句を再度適用しています。私はしたくない。

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

mongodb - 動的 linq と流暢な mongo を使用しているときに複数の値でグループ化すると、不正な形式の map-reduce emit ステートメントが発生する

動的リンクを使用して mapreduce クエリを実行していますが、複数の値でグループ化しようとすると問題が発生します。これをチェックしてください:

これはうまくいきます:

var query = contentDeliveryAggregates.AsQueryable().Where("_id.CId == 1 && _id.CdaId == 1 && _id.From >= @0 && _id.To <= @1", reportRequest.FromDate, reportRequest.ToDate )。GroupBy("_id.CdaId", "それ")。Select("new(key,Sum(value.BW) as Bandwidth)");

これはしません:

var query = contentDeliveryAggregates.AsQueryable().Where("_id.CId == 1 && _id.CdaId == 1 && _id.From >= @0 && _id.To <= @1", reportRequest.FromDate, reportRequest.ToDate )。GroupBy("new(_id.CdaId, _id.CId)", "それ"). Select("new(key,Sum(value.BW) as Bandwidth)");

linq は有効ですが (正常にコンパイルされます)、mapreduce ステートメントの形式が正しくないため、実行時エラーが発生します。2 番目のクエリの map-reduce ステートメントは次のとおりです。

{ "mapreduce" : "Aggregates", "map" : { "$code" : "function() { emit({}this._id.CdaIdthis. id.CId, {\" $f0\": this.value. BW}); }" }, "reduce" : { "$code" : "function(key, values) {var $f0 = 0;values.forEach(function(doc) { $f0 += doc. $f0; });return { \" $f0\": _$f0};}" }, "クエリ" : { "_id.CId" : 1, "_id.CdaId" : 1, "_id.From" : { " $gte" : ISODate("2012-02-01T08:00:00Z") }, " id.To" : { "$lte" : ISODate("2012-02-11T08:00:00Z") } }, " finalize" : { "$code" : "function(key, value) { return { \" $f0\": value._$f0};}" }, "limit" :0、「アウト」: {「インライン」: 1 } }

その emit ステートメントを確認してください。めちゃくちゃです...

私は何か間違ったことをしていますか、それとも流暢なドライバーのバグですか?

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

c# - LINQで例外をスローするMongoDBC#ドライバー

Mongoと公式のC#ドライバーを使用するアプリケーションを構築しています。インターフェイスとジェネリック型の制約を使用すると、奇妙な問題が発生します。次のことを考慮してください。

Get(...)の呼び出しを除いて、すべてが正常に機能します。var memberSerializationInfo = containingSerializationInfo.Serializer.GetMemberSerializationInfo(memberName);公式ドライバーを使用すると、SelectQuery.csの関数の呼び出しからnull参照例外が発生しますprivate BsonSerializationInfo GetSerializationInfoMember(IBsonSerializer serializer, MemberExpression memberExpression)

LINQにFluentMongoを使用するように切り替えると、次のようなメッセージが表示されます。

「ディスクリミネーターはクラスにのみ登録でき、インターフェイスMyLib.Services.IRepoDataには登録できません。」

これは基本的にこの男と同じです:

FluentMongoが突然エラーをスローする

IMongoObjectが何であるかを知らないため、Mongoドライバーが文句を言っていることを理解しています。私が理解していないのは、where呼び出し内の式が「o」をMongoObjectタイプではなくIMongoObjectタイプとして認識している理由です(デバッガーでこれが起こっていることを確認しました)。

抽象基本クラスの使用に切り替えると、すべて正常に機能します。すべての「MongoObjects」がそうではないので、私はこれを何をすべきかわからない

ありがとう