2

我想使用 PHP 从 mongodb 搜索结果中排除 _id 字段。如果我使用 $param 作为第二个搜索参数,它可以工作,但 _id 显然会被打印出来。这是我的代码:

$type['Tipo de objeto']=$_POST[type];
$param = $_POST[field];
$conn = new Mongo();
$db = $conn->selectDB('prov');
$results = $db->$table->find($type, $param);

print_r($param) // Array ( [0] => Título [1] => Descripción [2] => Actos [3] => Formato original [4] => Título [5] => Descripción ) 

如果我使用以下代码 _id 也会被打印,不知道我错过了什么:

$results = $db->$table->find($type, array("_id : 0" , "Derechos : 1", "Actos : 0")); //Fields marked with 1 gets printed, fields marked with 0 doesn't, except for _id.

提前致谢。

4

2 回答 2

3

您没有正确发送您的投影(您要返回的东西,find 中的第二个参数)

所以代替这个

array(
  "_id : 0" , 
  "Derechos : 1",
  "Actos : 0"
)

这是完全错误的,你必须输入

array(
  "_id" =>  0, 
  "Derechos" => 1
)
于 2013-08-14T00:37:26.160 回答
2

如果你已经登陆这里并且正在使用更新的 MongoDB 库,你可能想看看这里:MongoDBCollection-find

你需要做这样的事情:

    $fields = array(

        'projection'=>array(
            '_id'=>0,
            'Derechos'=>1,
        )

    );
于 2016-11-30T22:29:30.270 回答