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

时间:2017-06-23 07:20:50

标签: javascript php mongodb mongodb-query php-mongodb

如何在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,
}  

1 个答案:

答案 0 :(得分:0)

你的语法错了。在PHP中,您无法使用library(lubridate) month.vector <- format(seq.Date(min(DF$mtime), max(DF$mtime), by="1 month"), "%m%Y") num.claims.per.month <- sapply(month.vector, function (x) length(grep(x, unique.id))) ,但需要使用:来进行键/值组合。

为了清晰起见,您可以使用=>代替array(…)

您还需要使用[…]包含数组键:

'…'

我还想指出,使用值($drum->find( [ 'COLLECTION.2017-06-14' => [ '$type' => 'object' ] ] ); )作为关键字通常是个坏主意。它使查询更加困难,甚至无法找到例如特定月份的一系列文档。