我想使用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.
提前致谢。
答案 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,
)
);