Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于索引在双嵌套数组MongoDB中查找_Mongodb_Count_Doctrine - Fatal编程技术网

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

基于索引在双嵌套数组MongoDB中查找,mongodb,count,doctrine,Mongodb,Count,Doctrine,我想通过索引获取嵌套数组中的计数 我找到了一个解决方案,但若数组键有名称,那个么它就可以工作 db.mycollection.find({ "someArray.someNestedArray.name": "value" }) 但我的双嵌套数组基于如下索引 { "_id": "5dde88cd97e54f7c1a38da40", "list_id": [ [ 2 ] ] } 我试着这样数数 $users = $this->dm->

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

我找到了一个解决方案,但若数组键有名称,那个么它就可以工作

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

但这是行不通的

知道如何通过嵌套索引获得计数吗?我想将其应用于100k记录,因此不想在每个记录中循环记录,您仍然可以使用:


请将纯json用于文档示例,而不是图像。好的,完成了……好的,您的观点有效,a如何找到计数?实际上,我使用的是doctrine mongodb odm。在您的示例中,我尝试了Agrgate和count..比如db.orders.find().count()。但它不起作用,哪种方式不起作用
db.collection.count({“list_id.0.0”:2})
工作正常。我在…上再次尝试,它说…无效查询:必须匹配db.coll.find(…)或db.coll.aggregate(…)啊,这是游戏场的限制。它在真正的db上工作。好的,你猜类似的东西在mongo中如何工作?
  $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();