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

MongoDB配列要素(キー付きのドキュメント)が存在する場合は更新し、存在しない場合はプッシュします

    $addToSetを使用できます 配列にアイテムを追加し、$set この配列の既存のアイテムを更新します。

    userIDの場合、以下は配列に新しいアイテムを追加します 配列に見つかりません:

    db.doc.update({
        visits: {
            "$not": {
                "$elemMatch": {
                    "userID": 4
                }
            }
        }
    }, {
        $addToSet: {
            visits: {
                "userID": 4,
                "time": 1482607614
            }
        }
    }, { multi: true });
    

    以下は、サブドキュメント配列アイテムがuserIdと一致する場合、それを更新します :

    db.doc.update({ "visits.userID": 2 }, {
        $set: {
            "visits.$.time": 1482607614
        }
    }, { multi: true });
    



    1. $gtと$lteの両方でMongoDBクエリを最適化する方法は?

    2. 30秒より古いドキュメントのMongoDBクエリ

    3. Sidekiqの労働条件

    4. マングース(Nodejs)の複数化ルールとは何ですか?