2012-03-30 53 views
-2

我有一個名爲'question'的集合。它的結構是這樣的:如何更新MongoDB中的數組元素PHP

{ 
    _id: 
    user_id: 
    answers: 
    [ 
      { 
       answer_id: 
       answer_content: 
      } 
      , 
      { 
      ... 
      } 
      , 
      ... 
     ] 
} 

現在我知道一個答案的文檔的_id和answer_id,現在我想設置的答案 是例如best_answer(一個字段添加到元):

{ 
    answer_id: 
    answer_content: 
    is_best:true 
} 

我該怎麼做?

+0

這是否意味着JSON? – 2012-03-30 15:03:12

+0

你想要做更新或插入? – 2012-03-30 15:08:03

+0

想做更新 – tinybai 2012-03-30 16:37:07

回答

0
$find_array = array('answers._id'=>$answer_id); 
$this>collection>update($find_array,array('$set'=>array('answers.$.is_best' => true))); 
+0

我已經解決了這個問題 – tinybai 2012-03-31 01:46:35

0

您需要更新問題集合中的問題文檔,其中一種方法是$將用戶信息推送到某種類型的answersBy數組字段中。或者,您可以創建單獨的答案集合並推送包含問題ID,uid,名稱和答案的答案文檔。

+0

我已經解決了這樣的問題: – tinybai 2012-03-30 18:21:45

+0

$ find_array = array('answers._id'=> $ answer_id); \t \t \t \t \t \t \t \t $ user_info_array =陣列(爲 'uid'=> $ USER_ID, '名稱'=> $ USER_NAME); \t \t \t \t \t \t \t \t $這 - >系列 - >更新($ find_array,陣列( '$推'=>數組( '答案$像。'=> $ user_info_array))); – tinybai 2012-03-31 01:45:14

相關問題