Sie können $addToSet
verwenden um ein Element zum Array hinzuzufügen und $set
um ein vorhandenes Element in diesem Array zu aktualisieren.
Im Folgenden wird dem Array ein neues Element hinzugefügt, wenn die userID
wird nicht im Array :
db.doc.update({
visits: {
"$not": {
"$elemMatch": {
"userID": 4
}
}
}
}, {
$addToSet: {
visits: {
"userID": 4,
"time": 1482607614
}
}
}, { multi: true });
Im Folgenden wird das Filialdokument-Array-Element aktualisiert, wenn es mit userId
übereinstimmt :
db.doc.update({ "visits.userID": 2 }, {
$set: {
"visits.$.time": 1482607614
}
}, { multi: true });