Как обновить элемент массива в MongoDB По PHP - PullRequest
0 голосов
/ 30 марта 2012

У меня есть коллекция с именем 'question'.Его структура выглядит следующим образом:

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

Теперь я знаю _id и answer_id документа для одного ответа , Теперь я хочу установить для ответа best_answer (добавить поле в элемент), например:

{
    answer_id:
    answer_content:
    is_best:true
}

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 31 марта 2012
$find_array = array('answers._id'=>$answer_id); 
$this>collection>update($find_array,array('$set'=>array('answers.$.is_best' => true)));
0 голосов
/ 30 марта 2012

Вам нужно будет обновить документ с вопросом в коллекции вопросов, один из способов - вставить $ пользовательскую информацию в какое-либо поле массива answerBy. В качестве альтернативы вы можете создать отдельную коллекцию ответов и отправить документы с ответами, содержащие идентификатор вопроса, uid, имя и ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...