2017-06-23 51 views
0

如何如何在PHP MongoDB的动态子对象访问


我有以下示例代码在PHP MongoDB的动态子对象的访问,我需要做同样的查询在PHP

我将展示shell脚本得到的结果在MongoDB中

db.getCollection('Data').find({'COLLECTION.2017-06-16': {$type:'object'}}); 

如何能够得到结果,我在PHP集合查询与数组和对象。

我已经试过这样的,但它不能正常工作提前我附上样品JSON也

$finder = $drum->find({'COLLECTION.2017-06-14': {$type:'object'}}); 

$finder = $drum->find(array('COLLECTION.2017-06-14' => array($type:'object'))); 

感谢。 请参考并给我解决方案。


{ 
    "CODE": "XXXYYY", 
    "COLLECTION": { 
    "2017-06-16": { 
     "TEST": "CLEAR" 
    }, 
    "2017-06-17":{ 
     "TEST":"PUTPOST" 
    } 
    }, 
    "Success": true, 
},{ 
    "CODE": "XXXYYYZZZZ", 
    "COLLECTION": { 
    "2017-06-16": { 
     "TEST": "CLEAR" 
    }, 
    "2017-06-17":{ 
     "TEST":"PUTPOST" 
    } 
    }, 
    "Success": true, 
} 
+0

引用''''需要字符串的东西。 '$ finder = $ drum-> find(array('COLLECTION.2017-06-14'=> array('$ type'=>'object')));' –

+0

现在工作正常,谢谢@NeilLunn – Shiva

回答

0

你的语法是错误的。在PHP中,您不能使用:,但需要使用=>作为键/值组合。

而不是array(…)为清晰起见,您可以使用[…]

您还需要与'…'附上数组键:

$drum->find([ 'COLLECTION.2017-06-14' => [ '$type' => 'object' ] ]); 

我也想指出的是,它通常是一个坏主意,用一个值(2017-06-14)作为重点。这使得查询往往更困难,甚至无法找到例如在特定月份中出现的一系列文档。

+0

嗨德里克,你能帮我解决其他mongoDB问题。 https://stackoverflow.com/questions/44896477/how-to-code-mongodb-foreach-query-in-php @Derick – Shiva