【发布时间】:2013-07-16 00:26:12
【问题描述】:
我试试:
$fields = array('name'=>true);
find (array(array(), $fields))
但它不起作用(我什么也没得到)而且我看不到我的错误。对不起:(
【问题讨论】:
我试试:
$fields = array('name'=>true);
find (array(array(), $fields))
但它不起作用(我什么也没得到)而且我看不到我的错误。对不起:(
【问题讨论】:
如果使用mongodb/mongodb php composer包,需要指定projection选项:
find([], ['projection' => ['name' => false]])
另一个选项示例:
find([], ['limit' => 5, projection' => ['name' => false], ...])
【讨论】:
find 的 PHP 函数不能这样工作。试试:
find(array(), array('name'=>1))
(基本省略了周围的array)
这里是文档页面供参考:http://php.net/manual/en/mongocollection.find.php
【讨论】:
public function mongoGet($f) { $cursor = $this->MoTbl->find($f); $k = array(); $i = 0; while($cursor->hasNext()) { $k[$i] = $cursor->getNext(); $i++; } return $k; }
$m->mongoGet(array(), $fields); 在这个例子中,我收到所有字段,而不是 $fields 数组中指定的字段。
如果您要在所有记录中查找特定字段,您可以执行以下操作:
$cursor = $collection->find();
foreach( $cursor->fields(array('myField' => true )) as $doc ) {
echo "<pre>";
var_dump($doc);
echo "</pre>";
这将只为集合中的每个文档返回“myFeild”。
【讨论】: