2015-02-07 118 views
0

我想更新记录,并且我已经在mongodb中知道它的_id。我也跟着这样:MongoDB $set not updating record用php更新mongodb中的记录

$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

哪个蒙戈库您使用? – 2015-02-07 09:29:48

+0

我下载了2.6.7 – hao 2015-02-07 09:30:53

+0

$ idVal =“一些价值”??设置“$ idVal = 123456”; //任意数字。然后尝试 – 2015-02-07 09:35:17

回答

0

设置$ idVal用任何数量的尝试..

例子:

$idVal =123456; 

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

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

试过这个重要的id是54d5a04a7fba9ad0788b4568,我只是没有把它放在那里 – hao 2015-02-07 09:44:45

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 
    ) 
);