我有一个可以在Mongo中正常运行的查询,例如:
db.nested.find({'path':{$elemMatch:{$elemMatch:{$in:[25]}}}})
这可以正确地获取我要在多维数组中查找的数据。
但是,我正在尝试使用laravel-mongodb(jenssegers)库将该查询转换为可在Laravel中使用,并且看来我不能在单个where()
上使用多个elemMatch。
所以要做类似的事情:
DB::table('nested')->where('path','elemMatch', [25])->get();
因为它在阵列中的距离不够远,所以根本无法工作。
如何正确重写第一个查询以使其正常工作?
答案 0 :(得分:1)
我发现最简单的解决方案是改用whereRaw
:
whereRaw(['path'=>['$elemMatch'=>['$elemMatch'=>['$in'=>[25]]]]])
这正常工作。