不确定这是否可能,但这里有。
我有一个 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”开头的产品。对于上述文档,应返回第一个和第三个。
我可以想象的一个可能的查询是这样的:
{$or:[{"parts":{"$elemMatch":{sku:/Y.*/}}},{"parts":{"$elemMatch":{sku:/Z.*/}}}]}
这需要遍历查询数组 ["Y","Z"]
有没有其他方法可以做到这一点?:)