これが可能かどうかはわかりませんが、ここに行きます。
次のようなテーブルを持つ MongoDB (アクセスに morphia を使用) があります (この例では単純化されていますが、概念は同じです)。
{name:"Product A", parts:[{sku:"W-01"},{sku:"Y-01", qty:2}]}
{name:"Product B", parts:[{sku:"X-02"},{sku:"W-02"}]}
{name:"Product C", parts:[{sku:"Z-01"}]}
ここで、sku が「Y」または「Z」で始まるパーツを含む製品を検索したいと考えています。上記のドキュメントの場合、1 番目と 3 番目が返されます。
私が想像できる1つの可能なクエリは次のようなものです:
{$or:[{"parts":{"$elemMatch":{sku:/Y.*/}}},{"parts":{"$elemMatch":{sku:/Z.*/}}}]}
これはクエリ配列 ["Y","Z"] をループする必要があります
これを行う他の方法はありますか?:)