[英]update subdocument php mondodb library
我正在嘗試更新子文檔,但是我要刪除以前的內容,但我需要像數組推送那樣
$app->post('/addWidget', function (Request $request, Response $response, array $args) {
$mongo = new Connection();
$conn = $mongo->getConnection();
$post_data = $request->getParsedBody();
$result = $conn->find( [ 'user' => $post_data['user']], ['projection'=>['widgets'=>1]])->toArray();
var_dump($result[0]['widgets']);
$updateResult = $conn->updateOne(
[ 'user' => $post_data['user'] ],
[ '$set' => [ 'widgets' => [["name"=>$post_data['name'], "color"=>$post_data['color']]]]]
);
});
可以使用updateOne
函數更新子文檔嗎?
要將文檔推入數組時,需要$ push而不是$set
。
$updateResult = $conn->updateOne(
[ 'user' => $post_data['user'] ],
[
'$push' => [
'widgets' => [
[
"name"=>$post_data['name'],
"color"=>$post_data['color']
]
]
]
]
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.