0

配列である 2 つのプロパティ b と u があります。クエリで、条件 1 を満たす b の要素が少なくとも 1 つ、または条件 2 を満たす u の要素が少なくとも 1 つあるすべてのドキュメントを返すようにします。

私の問題は、条件 1 が満たされると、それを満たすすべての要素と u のすべての要素を含む配列 b が返されることです。条件Bも同様。

条件 1 を満たす要素が b にある場合は、それを満たす要素を含む配列を返します。そうでない場合は、配列を空にするか、b を除外します。条件 2 と u についても同様です。

条件を満たす要素がない場合は、ドキュメントを除外します。

4

1 に答える 1

2

残念ながら、MongoDB を使用して、データベース サーバー上で 1 つの手順でそれを行うことはできません。クライアント側で行う必要があります。

一部のフィールドのみを含める/除外するように結果を射影 (ドキュメント) することはできますが(または、ここに示すように配列内の最初に一致する結果)、条件付きで複数の配列を使用した検索に基づいてそれを行うことはできません (および射影演算子は、一致した結果だけでなく、最初の一致のみを返します)。

要件を満たすために、別のドキュメント/コレクション構造を検討する必要がある場合があります。MongoDB には、サブドキュメント レベルのフィルタリング/検索がまだありません。

于 2013-08-25T15:02:45.530 に答える