MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

nâng cấp một trường trong một tài liệu con trong một mảng theo chỉ mục trong MongoDB

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 , emailbody . 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 } }
);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tổng hợp Mongodb:$ Reduce không hoạt động như mong đợi

  2. Làm cách nào để chuyển truy vấn MongoDB thành JSON?

  3. Bộ lọc MongoDB $

  4. Tính năng tổng hợp mới với trình điều khiển Mongo 3.2, sử dụng Java

  5. mongoose xuất ra lỗi Lỗi:kết nối bị đóng