Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Dùng positional operator $[] với mảng trong MongoDB

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)