簡體   English   中英

更新子文檔php mondodb庫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM