PHP MongoDB从结果中排除_id

时间:2013-08-13 23:42:40

标签: php mongodb mongoid

我想使用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.

提前致谢。

2 个答案:

答案 0 :(得分:3)

您没有正确发送您的投影(您尝试返回的内容,查找中的第二个参数)

所以不是这个

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

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

array(
  "_id" =>  0, 
  "Derechos" => 1
)

答案 1 :(得分:0)

如果您已在此处登陆并使用更新的MongoDB库,您可能需要查看此处:MongoDBCollection-find

你需要做这样的事情:

    $fields = array(

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

    );