【发布时间】:2013-04-14 06:27:28
【问题描述】:
什么是 php 语法,它将完成以下 mongodb Shell 所做的工作?
> db.SoManySins.find({},{"_id":0,"FactoryCapacity":1})
【问题讨论】:
标签: mongodb mongodb-php
什么是 php 语法,它将完成以下 mongodb Shell 所做的工作?
> db.SoManySins.find({},{"_id":0,"FactoryCapacity":1})
【问题讨论】:
标签: mongodb mongodb-php
MongoDB PHP 驱动程序函数的命名与它们的 shell 对应函数相似,因此在本例中您将使用 MongoCollection::find()。 PHP 驱动程序使用关联数组将字段映射到 MongoDB 查询。
由于 PHP MongoCollection::find() 文档页面当前不包含投影示例,为了完整起见,我在下面添加了一个示例:
<?php
$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'SoManySins');
// Search criteria
$query = array();
// Projection (fields to include)
$projection = array("_id" => false, "FactoryCapacity" => true);
$cursor = $collection->find($query, $projection);
foreach ($cursor as $doc) {
var_dump($doc);
}
?>
对于投影规范,您可以使用 mongo shell 中的 1/0(包含/排除)或等效的真/假常量。
阅读 PHP MongoDB 驱动程序文档中的 Tutorial 以及查看 10gen 网站上的一些 archived presentations 非常值得。
如果您将MongoDB driver 与MongoDB PHP library 结合使用
require 'vendor/autoload.php'; // include Composer's autoloader
$client = new MongoDB\Client("mongodb://localhost:27017");
$result = $client->your_database_name->SoManySins->find(array(),array('projection' =>array('_id'=>FALSE,'FactoryCapacity' => TRUE)));
foreach ($result as $entry){
echo "<pre>";
print_r($entry);
echo "</pre>";
}
【讨论】:
'MongoDB\\Driver\\Exception\\CommandException: Projection cannot have a mix of inclusion and exclusion