sql >> Base de Datos >  >> NoSQL >> MongoDB

Elemento de matriz de actualización de MongoDB (documento con una clave) si existe, de lo contrario presione

Puedes usar $addToSet para agregar un elemento a la matriz y $set para actualizar un elemento existente en esta matriz.

Lo siguiente agregará un nuevo elemento a la matriz si el userID no se encuentra en la matriz:

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

Lo siguiente actualizará el elemento de la matriz del subdocumento si coincide con el userId :

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