Bạn muốn sử dụng update
lệnh trên bộ sưu tập của bạn như sau (ví dụ):
db.collection.update(
{ "my_array.title" : "title_one" },
{ $inc : { "my_array.$.click_number" : 1 } }
);
Chuyện gì vừa xảy ra?
Trên tham số đầu tiên của update
bạn xác định một query
để khớp với tài liệu bạn muốn cập nhật. Chúng tôi tìm kiếm một thuộc tính có tên title
bên trong mảng có tên my_array
. Bạn có thể so khớp với body
hoặc email
tất nhiên bằng cách sửa đổi ký hiệu dấu chấm thành:"my_array.email"
.
Tham số thứ hai xác định cập nhật, sửa đổi để áp dụng. Chúng tôi có $inc
toán tử để tăng các trường, mà chúng tôi sử dụng trong câu lệnh này. Truy vấn query
chọn một tài liệu có phần tử mảng phù hợp. Bạn có thể tiếp cận mục mảng phù hợp này bằng $
ký hiệu. "my_array.$"
chọn phần tử mảng phù hợp, có title
, email
và body
. Nếu bạn cố gắng cung cấp giá trị cho một trường không tồn tại, MongoDB sẽ làm điều đó cho bạn. Nếu trường không tồn tại, $inc
đặt trường thành số lượng được chỉ định. $inc
toán tử chấp nhận số tiền tăng dần dương và âm.
Tìm hiểu thêm về lệnh cập nhật.
Một ví dụ khác:
db.collection.update(
{ _id : "john", "my_array.email" : "email" },
{ $inc : { "my_array.$.click_number" : 1 } }
);