Cập nhật tất cả phần tử mảng với all positional operator $[]
Từ MongoDB 3.6, toán tử $[] cho phép cập nhật tất cả phần tử trong mảng, khác với $ chỉ cập nhật phần tử đầu tiên khớp.
Dữ liệu mẫu
> db.demo324.insertOne({"ListOfValues": [10, 20, 30]});
Cập nhật tất cả phần tử thành "MongoDB"
> db.demo324.update(
{ "ListOfValues": [10, 20, 30] },
{ $set: { "ListOfValues.$[]": "MongoDB" } },
{ upsert: true }
);
Kết quả
{
"_id": ObjectId("..."),
"ListOfValues": ["MongoDB", "MongoDB", "MongoDB"]
}
So sánh:
| Toán tử | Hành vi |
|---|---|
$ | Cập nhật phần tử đầu tiên khớp query |
$[] | Cập nhật tất cả phần tử trong mảng |
$[<identifier>] | Cập nhật phần tử khớp arrayFilters (filtered positional) |