MongoDb PHP将插入值推送到数组的数组中

MongoDb PHP将插入值推送到数组的数组中,php,arrays,mongodb,push,Php,Arrays,Mongodb,Push,所以我有一个选择题列表,我想存储,每次用户回答同一个问题时,他对这个问题的回答。所以我想为每个用户创建一个文档,并为每个问题创建他的答案历史记录。我制作了一个包含问题ID的问题数组,还有一个包含答案的答案数组(“ans”)。所以我写了一个基本代码,在这里我添加了问题1,他的第一个答案“a”,现在我想用答案“b”更新这个文档 $m = new MongoClient(); $db = $m->test; $answers = $db->answers; $answers->in

所以我有一个选择题列表,我想存储,每次用户回答同一个问题时,他对这个问题的回答。所以我想为每个用户创建一个文档,并为每个问题创建他的答案历史记录。我制作了一个包含问题ID的问题数组,还有一个包含答案的答案数组(“ans”)。所以我写了一个基本代码,在这里我添加了问题1,他的第一个答案“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字段。感谢您的帮助。

好的,我找到了解决方案ally.我使用了.和$符号

$answers->update(数组('userId'=>1,'questions.questionId'=>1'), 数组('$push'=>array('questions.ans'=>try2')