MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Élément de tableau MongoDB Update (document avec une clé) s'il existe, sinon push

Vous pouvez utiliser $addToSet pour ajouter un élément au tableau et $set pour mettre à jour un élément existant dans ce tableau.

Ce qui suit ajoutera un nouvel élément au tableau si le userID est introuvable dans le tableau :

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

Ce qui suit mettra à jour l'élément de tableau de sous-document s'il correspond à userId :

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