使用MongoDB、PHP语法的投影查询?

使用MongoDB、PHP语法的投影查询?,mongodb,mongodb-php,Mongodb,Mongodb Php,什么是php语法,它将完成以下mongodb Shell所做的工作 > db.SoManySins.find({},{"_id":0,"FactoryCapacity":1}) MongoDB PHP驱动程序函数的命名类似于它们的shell对应函数,因此在本例中您将使用。PHP驱动程序使用关联数组将字段映射到MongoDB查询 由于PHPMongoCollection::find()文档页面目前没有包含带有投影的示例,为了完整起见,我在下面添加了一个示例: <?php $m

什么是php语法,它将完成以下mongodb Shell所做的工作

> db.SoManySins.find({},{"_id":0,"FactoryCapacity":1})

MongoDB PHP驱动程序函数的命名类似于它们的shell对应函数,因此在本例中您将使用。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驱动程序文档中的,以及在10gen网站上查看一些,非常值得一试。

如果您与

需要“vendor/autoload.php”;//包括作曲家的自动加载器
$client=new MongoDB\client(“mongodb://localhost:27017");
$result=$client->your_database_name->SoManySins->find(array(),array('projection'=>array('u id'=>FALSE,'FactoryCapacity'=>TRUE));
foreach($result作为$entry){
回声“;
打印(条目);
回声“;
}

事实证明,这是该系列的组成方式,我错过了这一点。所有的旧文档(谷歌搜索的第2页和第3页上显示的内容?哦,是的,很有用。希望它永远不会消失。)对了,通过上面的例子,我在几分钟内就完成了脚本。这是另一根羽毛和一颗珠子!注意:新的PHP扩展与旧的不推荐的PHP扩展有不同的API。首先应该提到的是,我喜欢这个回复,但更重要的是,它现在不允许预测值为真和假。只能是一种值类型,Truthy或Falsy不能同时是两种。
'MongoDB\\Driver\\Exception\\CommandException:投影不能同时包含和排除
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>";
}