sql >> データベース >  >> NoSQL >> MongoDB

新しい値をmongodb内部配列にプッシュします-mongodb/php

    これらの答えはどちらも実際にはここで何が悪いのかを教えてくれないので...

    $conn = new Mongo();
    $q = $conn->server->gameQueue;
    $id = new MongoId("4d0b9c7a8b012fe287547157");
    $q->update(array("_id"=>$id),array('$push' => array("done_by","2")));
    

    $ pushに問題があります ステートメントでは、実際に「done_by」を送信している値が「2」の「done_by」をプッシュしていませんおよび 「2」...

    ここに問題があります...

    array('$push' => array("done_by","2"))
    

    これには=>が必要です ではありません

    array('$push' => array("done_by" => "2"))
    

    ただし、これを実行するたびに、MongoDBに「done_by」にまだ存在しない場合にのみ「2」を挿入する場合は、別の「2」が挿入されることに注意してください。 $ addToSetを使用する必要があります。 ...

    array('$addToSet' => array("done_by" => "2"))
    

    このステートメントは、毎回2を追加するのではなく、初めてのみ追加します。



    1. MongoDBで、ユーザーが関与する各会話の最後のメッセージを一覧表示する

    2. 重複するMongoObjectIdが2つの異なるコレクションで生成される可能性はありますか?

    3. MongoDBとMySQLNoSQL-Mongoが優れている理由

    4. すべてのキーを一覧表示せずに、サブフィールドをプロジェクションのトップレベルにプロモートします