2012-04-01 11 views
0

これは非常にシンプルなはずですが、動作させることができないようです。サブコレクション内に1つ以上のB要素があるすべてのドキュメントAを選択したいと思います。サブコレクション内のアイテム数のMongoクエリ

店舗文書に従業員のコレクションがある場合と同様です。私はちょうどそこに1人以上の従業員と店を見つけるしたい。

{Store.Employees:{$size:{$ne:0}}} 

または

{Store.Employees:{$size:{$gt:0}}} 

はちょうどそれを動作させることはできません。

は、私のようなものを試してみました。

答えて

0

これはサポートされていません。基本的には、配列のサイズがで、値がの文書を取得できます。あなたができない範囲検索。

通常どおり、同じドキュメント内の別のフィールドに配列の長さをキャッシュします。次に、そのフィールドにインデックスを付け、非常に効率的なクエリを作成します。

もちろん、これにはもう少し作業が必要です(長さフィールドを最新に保つことを忘れないでください)。

+0

まあ... that sucks。願書のどこかで呼び出された、あるいはおそらくもっとはっきりと分かった願い。それを理解しようと多くの時間を費やした。 – user1070663

+0

私はそれがどこかで綴られていると信じています:) –