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

How MongoDb dynamic Child Object access in PHP

MongoDb 如何在 PHP

中访问动态子对象

我有以下示例代码,我需要在 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,
}  

你的语法有误。在 PHP 中,您不能使用 :,但需要使用 => 来进行 key/value 组合。

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

您还需要用 '…':

将数组键括起来
$drum->find( [ 'COLLECTION.2017-06-14' => [ '$type' => 'object' ] ] );

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