Я хочу исключить поле _id из результатов поиска mongodb с помощью PHP. Если я использую $ param в качестве второго параметра поиска, он работает, но, очевидно, печатается. Вот мой код:
$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.
Заранее спасибо.
Вы не отправляете правильно свою проекцию (вещь, которую вы пытаетесь вернуть, второй параметр в поиске)
Поэтому вместо этого
array( "_id : 0" , "Derechos : 1", "Actos : 0" )
что совершенно неверно, вам нужно ввести
array( "_id" => 0, "Derechos" => 1 )
Если вы приземлились здесь и используете обновленную библиотеку MongoDB, вы можете посмотреть здесь: MongoDBCollection-find
и вам нужно будет сделать что-то вроде этого:
$fields = array( 'projection'=>array( '_id'=>0, 'Derechos'=>1, ) );