我试图构建一个MongoDb查询,该查询将根据几个条件从数组中返回一个值,其中一个条件是部分字符串匹配。
我的(非常简化的)Mongo数据看起来像......
[
{
"deliveryId": "M011111",
"movie": [
{"uriId": "MVH10001234"},
{"uriId": "MVH20004567"}
]
},
{
"deliveryId": "M022222",
"movie": [
{"uriId": "MVH10009876"},
{"uriId": "MVH20005432"}
]
}
]
我不确定我是否应该在这里使用聚合查询,但基本上我想返回包含' H1'的 uriId 。 ,用于特定的 deliveryId 。
所以SQL等效就是..
SELECT uriId from table
WHERE deliveryId = 'M01111'
AND uriId like '%H1%'
编辑:我在Perl中使用Mango进行查询。到目前为止,我只有
my $results = $mango->db($supplier)->collection('$collection')->aggregate(
[
{'$match' => {'deliveryId' => 'M1063343'}},
{'$project' => {'uriId' => '$Movie.uriId'}},
{'$match' => {'$uriId' => {'$regex' => '/.*H1.*/'}}}
]);
但这根本不起作用。
非常感谢任何建议。