2012-03-30 2 views
-2

나는 'question'이라는 이름의 콜렉션을 가지고있다. 그것의 구조는 다음과 같습니다MongoDB에서 배열 요소를 업데이트하는 방법 PHP로

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

지금 내가 지금 내가 할 예를 들어 best_answer (요소에 필드를 추가)를 에 대한 답을 설정하려면, 하나의 대답 문서의 _id와 answer_id을 알고

{ 
    answer_id: 
    answer_content: 
    is_best:true 
} 

어떻게하면됩니까?

+0

JSON일까요? –

+0

업데이트 또는 삽입을 시도하고 있습니까? –

+0

업데이트를 원합니다 – tinybai

답변

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

나는 이것을 이렇게 풀었습니다. – tinybai

0

질문 모음에서 질문 문서를 업데이트해야합니다. 한 가지 방법은 사용자 정보를 answerBy 배열 필드로 푸시하는 것입니다. 또는 별도의 답변 모음을 만들고 질문 ID, UID, 이름 및 대답이 포함 된 답변 문서를 푸시 할 수 있습니다.

+0

이것을 해결했습니다 : – tinybai

+0

$ find_array = array ('answers._id'=> $ answer_id); \t \t \t \t \t \t \t \t $의 user_info_array = 배열 ​​('UID'=> $ USER_ID, '이름'=> $ _ 이름); \t \t \t \t \t \t \t \t $ this-> 모음 -> 업데이트 ($ find_array 배열 ("$ 푸시 '=> 배열 ("$ 응답 등을들 수있다..') => $ user_info_array)); – tinybai

관련 문제