Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中编写MongoDB foreach查询代码_Php_Mongodb_Foreach_Mongodb Query_Php Mongodb - Fatal编程技术网

如何在PHP中编写MongoDB foreach查询代码

如何在PHP中编写MongoDB foreach查询代码,php,mongodb,foreach,mongodb-query,php-mongodb,Php,Mongodb,Foreach,Mongodb Query,Php Mongodb,如何在PHP中编写MongoDB foreach查询代码 现在我必须用PHP编写相同的MONGODB查询,使用迭代器\u to \u数组,我不知道如何在PHP中执行此查询 现在我被绊倒了。 我已经用一些例子给出了我的数据 使用MONGO查询: db.getCollection('DRUM').find({'CODE': 'XXYYZZYY'}).forEach( function(doc) { print(doc.COLLECTION.DAY); }); { "CODE" : "

如何在PHP中编写MongoDB foreach查询代码

现在我必须用PHP编写相同的MONGODB查询,使用迭代器\u to \u数组,我不知道如何在PHP中执行此查询

现在我被绊倒了。 我已经用一些例子给出了我的数据

使用MONGO查询:

db.getCollection('DRUM').find({'CODE': 'XXYYZZYY'}).forEach(
function(doc)
{
    print(doc.COLLECTION.DAY);
});
{
   "CODE" : "XXYYZZYY",
   "COLLECTION" : {
      "DAY" : {
         "2017-06-05" : {
            "id" : 565455
         },
         "2017-06-15" : {
            "id" : 565445
         }
      },
      "MONTHLY" : {
         "2017-06-01" : {
            "id" : 564444
         },
         "2017-05-01" : {
            "id" : 565455
         }
      }
   },
   "success" : true
}
{
   "CODE" : "XXYYZZYY",
   "COLLECTION" : {
      "DAY" : {
         "2017-06-05" : {
            "id" : 565455
         },
         "2017-06-15" : {
            "id" : 565445
         }
      }
   },
   "success" : true
}
实际数据库记录:

db.getCollection('DRUM').find({'CODE': 'XXYYZZYY'}).forEach(
function(doc)
{
    print(doc.COLLECTION.DAY);
});
{
   "CODE" : "XXYYZZYY",
   "COLLECTION" : {
      "DAY" : {
         "2017-06-05" : {
            "id" : 565455
         },
         "2017-06-15" : {
            "id" : 565445
         }
      },
      "MONTHLY" : {
         "2017-06-01" : {
            "id" : 564444
         },
         "2017-05-01" : {
            "id" : 565455
         }
      }
   },
   "success" : true
}
{
   "CODE" : "XXYYZZYY",
   "COLLECTION" : {
      "DAY" : {
         "2017-06-05" : {
            "id" : 565455
         },
         "2017-06-15" : {
            "id" : 565445
         }
      }
   },
   "success" : true
}
预期输出:

db.getCollection('DRUM').find({'CODE': 'XXYYZZYY'}).forEach(
function(doc)
{
    print(doc.COLLECTION.DAY);
});
{
   "CODE" : "XXYYZZYY",
   "COLLECTION" : {
      "DAY" : {
         "2017-06-05" : {
            "id" : 565455
         },
         "2017-06-15" : {
            "id" : 565445
         }
      },
      "MONTHLY" : {
         "2017-06-01" : {
            "id" : 564444
         },
         "2017-05-01" : {
            "id" : 565455
         }
      }
   },
   "success" : true
}
{
   "CODE" : "XXYYZZYY",
   "COLLECTION" : {
      "DAY" : {
         "2017-06-05" : {
            "id" : 565455
         },
         "2017-06-15" : {
            "id" : 565445
         }
      }
   },
   "success" : true
}

不能直接从php执行相同的查询。您必须首先从mongo获取记录,然后迭代该结果

下面是我的代码,用于PHP7 mongodb驱动程序

//connection object
$connection = new \MongoDB\Driver\Manager("mongodb://127.0.0.1:27017");

$filter = ['CODE' => 'XXYYZZYY'];
$projection['projection'] = ["COLLECTION.DAY" => 1,"CODE" => 1];

$query = new \MongoDB\Driver\Query($filter,$projection);
$cursor = $connection->executeQuery('DB_NAME.DRUM', $query);
foreach($cursor as $key => $row) {
    print_r($row); //your expected output
}

不能直接从php执行相同的查询。您必须首先从mongo获取记录,然后迭代该结果

下面是我的代码,用于PHP7 mongodb驱动程序

//connection object
$connection = new \MongoDB\Driver\Manager("mongodb://127.0.0.1:27017");

$filter = ['CODE' => 'XXYYZZYY'];
$projection['projection'] = ["COLLECTION.DAY" => 1,"CODE" => 1];

$query = new \MongoDB\Driver\Query($filter,$projection);
$cursor = $connection->executeQuery('DB_NAME.DRUM', $query);
foreach($cursor as $key => $row) {
    print_r($row); //your expected output
}