所以我有一个多项选择题列表,我希望每次用户回答同一个问题时都会存储这个问题的答案。所以我想为每个用户创建一个文档以及每个问题的答案历史记录。我提出了一系列问题,其中包含了问题以及一系列答案('答案'和他的答案。所以我写了一个基本代码,我在第一个问题中添加了第一个答案'a',现在我想更新这个回答'b'的文件。
$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 :(得分:0)
好的,我终于找到了解决方案。我有使用了。和$符号
$ answers-> update(array('userId'=> 1,'questions.questionId'=>'1'), 数组('$ push'=>数组('问题。$。ans'=>'try2')));