基于索引在双嵌套数组MongoDB中查找

问题描述 投票:0回答:1

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

我找到了一个解决方案,但如果数组键具有名称,则该方法有效

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();

但是那不起作用。

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

mongodb count doctrine
1个回答
0
投票

您仍然可以使用dot notation

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

Example

© www.soinside.com 2019 - 2024. All rights reserved.