2017-07-02 164 views
0

所以我有一個多選題的列表,我想存儲,每次用戶回答同一個問題時,他對這個問題的回答。所以我想爲每個用戶創建一個文檔,併爲每個問題的回答歷史記錄。我提出了一系列問題來解決questionId和一系列的答案('ans')和他的答案,於是我寫了一個基本代碼,我爲問題1添加了一個基本代碼,他的第一個答案是'a',現在我想更新它與答案「b」記錄MongoDb PHP將插入值插入數組數組

$m = new MongoClient(); 
$db = $m->test; 
$answers = $db->answers; 

$answers->insert([ 'userId' => 1, 'questions' => [[ 'questionId' => '1', 'ans' => ['a'] ]]]); 
$answers->update(array('userId' => 1, 'questions.questionId' => '1'), 
       array('$push' => array('questions' => array('ans' => 'b')))); 

的問題是,而不是將它添加到現有陣列,創建一個新的對象:

_id:5958c3e1e87cbf643400734d 
userId:1 
    questions:Array 
    0:Object 
    questionId:"1" 
    ans:Array 
    0:"a" 
    1:questionId 
    ans:"b" 

我知道這是一個非常基本的問題,但我已經在其他問題中進行了搜索,但是我無法得到語法工作,我認爲問題在於找到了正確的文檔,但我無法弄清楚如何將其添加到現有的ans而不是創建一個新的ans領域。感謝您的幫助。

回答

0

好的我終於找到了解決方案。我曾經使用過。 ($''''','$'''''),$美元符號

$ answers-> update(array('userId'=> 1,'questions.questionId'=>'1'), 數組ans'=>'try2')));