2015-02-07 3 views
0

Я хочу обновить запись, и я уже знаю ее _id в mongodb. Я следовал за этим: MongoDB $set not updating recordОбновление записи в mongodb с php

$idVal ="some value"; 

$new_data =array('$set'=> array("Domain"=>$domain), 
array("author"=>$author),array("title"=>$title)); 

$collectionList->update(array("_id"=>$idVal), $new_data); 

Сообщение об ошибке message127.0.0.1 ошибка: 27017: Неизвестный модификатор: 0

Что случилось с моим запросом? заранее спасибо!

+0

Какая библиотека Монго вы используете.? –

+0

Скачано 2.6.7 – hao

+0

$ idVal = "some Value" ?? Установите «$ idVal = 123456»; // любое число. а затем попробуйте –

ответ

0

Set $ ​​idVal с любым количеством и попробовать ..

Пример:

$idVal =123456; 

$new_data =array('$set'=> array("Domain"=>$domain), 
array("author"=>$author),array("title"=>$title)); 

$collectionList->update(array("_id"=>$idVal), $new_data); 
+0

попробовал orignial id был 54d5a04a7fba9ad0788b4568, я просто не помещал его туда – hao

0

Вы указали неверные данные обновления. Если вы внимательно посмотрите на $new_data массив, вы заметите, что это массив с 3 ключами:

$new_data = array(
    '$set' => array("Domain"=>$domain), 
    0 => array("author"=>$author), 
    1 => array("title"=>$title) 
); 

Именно поэтому у вас есть ошибка «Неизвестный модификатор: 0», потому что 0 не является оператор обновления mongodb.

В массиве случае $new_data должно быть:

$new_data = array(
    '$set' => array(
     "Domain"=>$domain, 
     "author"=>$author, 
     "title"=>$title 
    ) 
); 
Смежные вопросы