U kunt $addToSet
. gebruiken om een item aan de array toe te voegen en $set
om een bestaand item in deze array bij te werken.
Het volgende zal een nieuw item aan de array toevoegen als de userID
is niet gevonden in de array :
db.doc.update({
visits: {
"$not": {
"$elemMatch": {
"userID": 4
}
}
}
}, {
$addToSet: {
visits: {
"userID": 4,
"time": 1482607614
}
}
}, { multi: true });
Het volgende zal het subdocumentarray-item bijwerken als het overeenkomt met de userId
:
db.doc.update({ "visits.userID": 2 }, {
$set: {
"visits.$.time": 1482607614
}
}, { multi: true });