根据索引在双嵌套数组MongoDB中查找

时间:2019-11-28 11:50:15

标签: mongodb count doctrine

我想按索引获取嵌套数组中的计数

我找到了一个解决方案,但如果数组键的名称为

,则可以解决该问题
db.mycollection.find({
    "someArray.someNestedArray.name": "value"
})

但是我的双嵌套数组基于下面的索引

{
  "_id": "5dde88cd97e54f7c1a38da40",
  "list_id": [
    [
      2
    ]
  ]
}

我试图通过解决方案来获得这样的计数

 $users = $this->dm->createQueryBuilder(ClientUser::class)
            ->field('list[0][0]')
            ->equals(2)
            ->getQuery()->count();

$users = $this->dm->createQueryBuilder(ClientUser::class)
            ->field('list.[0].[0]')
            ->equals(2)
            ->getQuery()->count();

  $users = $this->dm->createQueryBuilder(ClientUser::class)
        ->field('list.0.0')
        ->equals(2)
        ->getQuery()->count();

但这不起作用。

任何想法我怎么能通过嵌套索引计数?我想将其应用于10万条记录,所以不想在一般的foreach中循环记录

1 个答案:

答案 0 :(得分:1)

您仍然可以使用dot notation

 $users = $this->dm->createQueryBuilder(ClientUser::class)
        ->field('list.0.0')
        ->equals(2)
        ->getQuery()->count();

Example