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

MongoDB $ inc

MongoDB có $inc toán tử cập nhật trường cho phép bạn tăng giá trị bằng một số lượng cụ thể.

Bạn có thể sử dụng các giá trị âm và dương (tức là để tăng hoặc giảm giá trị).

Nếu trường chưa tồn tại, trường đó sẽ được tạo với giá trị được chỉ định.

Ví dụ

Giả sử chúng ta có một bộ sưu tập có tên là dogs với tài liệu sau:

{ "_id" : 1, "name" : "Wag", "weight" : 10 }

Đây, weight trường chứa một giá trị có thể tăng hoặc giảm.

Sự gia tăng

Chúng ta có thể sử dụng $inc toán tử kết hợp với update() phương pháp để tăng trọng lượng của chú chó này.

Như thế này:

db.dogs.update(
  { _id: 1 },
  { $inc: { weight: 5 } }
)

Đầu ra:

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Điều này cho chúng tôi biết rằng một tài liệu đã được khớp và sửa đổi.

Hãy kiểm tra lại bộ sưu tập:

db.dogs.find()

Kết quả:

{ "_id" : 1, "name" : "Wag", "weight" : 15 }

Chúng ta có thể thấy rằng trọng lượng của con chó đã tăng thêm 5 lần.

Giảm dần

Bạn có thể giảm giá trị bằng cách cung cấp giá trị âm cho $inc nhà điều hành.

Như thế này:

db.dogs.update(
  { _id: 1 },
  { $inc: { weight: -5 } }
)

Đầu ra:

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Kiểm tra bộ sưu tập:

db.dogs.find()

Kết quả:

{ "_id" : 1, "name" : "Wag", "weight" : 10 }

Chúng ta có thể thấy rằng trọng lượng hiện đã giảm đi 5.

Gia tăng một trường không tồn tại

Khi bạn tăng một trường không tồn tại trong tài liệu, trường đó sẽ được thêm vào và gán giá trị đã chỉ định.

Ví dụ:

db.dogs.update(
  { _id: 1 },
  { $inc: { weight: 1, height: 30 } }
)

Đầu ra:

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Lưu ý rằng chúng tôi đã cập nhật hai trường; weight trường và height trường (ban đầu không tồn tại).

Hãy kiểm tra lại tài liệu:

db.dogs.find()

Kết quả:

{ "_id" : 1, "name" : "Wag", "weight" : 11, "height" : 30 }

Chúng ta có thể thấy rằng weight trường đã được tăng thêm 1height mới trường đã được thêm với giá trị được chỉ định là 30 .


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoSocketReadException:Đã đến gần cuối luồng (sau một thời gian không hoạt động)

  2. Cách kết nối ứng dụng mongodb với Meteor MongoDB cục bộ

  3. mongodb 3.4.3 Quyền bị từ chối wiredtiger_kv_engine.cpp 267 lỗi với ubuntu 16

  4. MongoDB không bằng

  5. Sắp xếp theo trường ảo trong mongoDB (mongoose)