基于索引在双嵌套数组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();