繁体   English   中英

在对象嵌套数组上使用具有相等条件的Doctrine ODM查找文档

[英]Find a document with Doctrine ODM with equals condition on nested array of objects

我得到了这种文件:

{
    "_id" : ObjectId("54ad5c3b9a703a3c088b4567"),
    "hard" : 750,
    "coordinates" : {
        "x" : 0.2388169910939489,
        "y" : 0.7996551291084174
    },
    "indicator" : 500,

    "networkIdList" : {
        "networkIdData" : [ 
            {
                "networkId" : "abc123",
                "type" : "SomeNetwork"
            },
            {
                "networkId" : "123asdf",
                "type" : "AnotherNetWork"
            },
            {
                "networkId" : "abc123",
                "type" : "OneMoreNetwork"
            }
        ]
    }
}

而且我需要执行查询以查找具有“ networkId” =“ abc123”和“ type” =“ SomeNetwork”的文档。

我已经尝试过以下指令:

$this->documentManager->createQueryBuilder('Mydocument')                                    ->field('networkIdList.networkIdData.$.networkGamingId')->equals('abc123')                  ->field('networkIdList.networkIdData.$.type')->equals('')
->getQuery()
->execute());

但是游标不返回任何数据。

我也尝试

->where("function() {return this.networkIdList.networkIdData.$.networkGamingId == 'abc123'}")

但是在这种情况下,我遇到一个错误,说对象$没有属性。

而且我需要执行查询以查找具有“ networkId” =“ abc123”和“ type” =“ SomeNetwork”的文档

$qb = $dm->createQueryBuilder('Foo')
         ->field('networkIdList.networkIdData.networkId')->equals('abc123')
         ->field('networkIdList.networkIdData.type')->equals('SomeNetwork');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM