这是我的预期结果:
"ForgotPassword": [
{
"UpdatedOn": ISODate("2017-12-06T11:23:23.0Z"),
},
{
"UpdatedOn": ISODate("2017-12-06T11:45:13.0Z"),
}
]
这就是我得到的:
"ForgotPassword": {
"UpdatedOn": [
ISODate("2017-12-20T11:48:15.0Z"),
ISODate("2017-12-20T11:48:30.0Z"),
ISODate("2017-12-21T11:57:21.0Z")
]
}
实际上忘记密码字段不会出现在集合文档中。
当我添加第一个时间时,它应该创建忘记密码字段,而 updatedon 里面应该存储
当我在忘记密码中添加第二时间时, updatedon 应该重复我的内容 updateon
这是我的疑问:
$updateQuery = $queryUpdate->update(
array("CollaboratorId"=>(int)$collaboratorId), //query condition
array('$addToSet'=>array('ForgotPassword.UpdatedOn'=>$currentDate)),
array('upsert'=>1)
);
答案 0 :(得分:0)
$queryUpdate->findAndModify(
array("CollaboratorId"=> (int)$collaboratorId),
array('$addToSet'=> array('ForgotPassword' =>array("UpdatedOn" => $currentDate))),
array('new' => 1,"upsert"=>1)
);
upsert 和 new 和 findandmodify 和 addtoset 正在运作