Mongodb - 如果是数组项,则返回基于正则表达式匹配的结果

时间:2014-03-13 15:46:35

标签: perl mongodb

我试图构建一个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.*/'}}}    
  ]); 

但这根本不起作用。

非常感谢任何建议。

0 个答案:

没有答案