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 });