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

MongoDB - Actualizar o insertar objeto en matriz

Prueba esto

db.collection.update(
    { _id : ObjectId("57315ba4846dd82425ca2408")},
    { $pull: {"myarray.userId": ObjectId("570ca5e48dbe673802c2d035")}}
)
db.collection.update(
    { _id : ObjectId("57315ba4846dd82425ca2408")},
    { $push: {"myarray": {
        userId:ObjectId("570ca5e48dbe673802c2d035"),
        point: 10
    }}
)

Explicación:en la primera declaración $pull elimina el elemento con userId= ObjectId("570ca5e48dbe673802c2d035") de la matriz en el documento donde _id = ObjectId("57315ba4846dd82425ca2408")

En el segundo $push inserta este objeto { userId:ObjectId("570ca5e48dbe673802c2d035"), point: 10 } en la misma matriz.