$addToSet
を使用できます 配列にアイテムを追加し、$set
この配列の既存のアイテムを更新します。
userID
の場合、以下は配列に新しいアイテムを追加します 配列に見つかりません:
db.doc.update({
visits: {
"$not": {
"$elemMatch": {
"userID": 4
}
}
}
}, {
$addToSet: {
visits: {
"userID": 4,
"time": 1482607614
}
}
}, { multi: true });
以下は、サブドキュメント配列アイテムがuserId
と一致する場合、それを更新します :
db.doc.update({ "visits.userID": 2 }, {
$set: {
"visits.$.time": 1482607614
}
}, { multi: true });