1

すべてのドキュメントのフィールドで MongoDb に特定の値を検索させる最善の方法を見つけようとしています。たとえば、2 つのドキュメントがあるとします。

{
    field1: "value1"
    field2: "value2"
}

{
    field3: "value3"
    field4: "value1"
}

クエリ文字列は「value1」で、両方のドキュメントが返されます。

MongoDb でそれを行う方法がない場合、データベースまたはコード レベルで実装するための最良の戦略は何ですか? マッピングされたすべてのエンティティのプロパティを反復処理して配列を返し、この配列をデータベースに格納するゲッターを C# で作成しようとしましたが、IMO は非効率的で醜いソリューションです。

4

1 に答える 1

1

MongoDB で直接行う方法はありません。

フィールド名のセットが無制限であることは、スキーマを再作成する必要があることを示している可能性があります。代わりに、動的フィールド名を埋め込みオブジェクトの値にすることを検討しましたか? 次のように:

fields: [{name: "field1", value: "value1"}, {name: "field2", value: "value2"}]

次に、クエリは次のようになります。

db.coll.find({'fields.value': 'value1'});
于 2013-05-03T19:25:45.840 に答える