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

Mou*_*Man 4 mongodb mongodb-php

什么是PHP语法将执行以下mongodb Shell的工作?

> db.SoManySins.find({},{"_id":0,"FactoryCapacity":1})
Run Code Online (Sandbox Code Playgroud)

Ste*_*nie 15

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);
    }
?>
Run Code Online (Sandbox Code Playgroud)

对于投影规范,您可以在mongoshell中使用1/0(包含/排除),或等效的true/false常量.

非常值得通过PHP MongoDB驱动程序文档中的Tutorial以及查看10gen网站上的一些存档演示文稿.


Nan*_*mar 5

如果您将MongoDB 驱动程序MongoDB PHP 库结合使用

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>";
}
Run Code Online (Sandbox Code Playgroud)