0

PHP中MongoDb如何动态访问子对象


我有以下示例代码,我需要在 php 中执行相同的查询

我将显示 SHELL 脚本以在 mongoDB 中获取结果

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

我如何能够在带有数组和对象的 PHP 集合查询中获得结果。

我试过这样但它不能正常工作

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

或者

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

在此先感谢我还附上了示例 json。请参考并给我解决方案。


 {
  "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,
}  
4

1 回答 1

0

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

array(…)为了清楚起见,您可以使用代替[…]

您还需要将数组键括在'…'

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

我还想指出,使用值 ( 2017-06-14) 作为键通常是个坏主意。它通常使查询变得更加困难,甚至不可能找到例如在特定月份中的一系列文档。

于 2017-07-04T15:16:49.237 回答