Giảm giá trị trong MongoDB

Nhà lãnh đạo bảo mật dữ liệu cung cấp quyền truy cập dữ liệu tự phục vụ hiện đại, khám phá PII và bảo vệ cho người dùng MongoDBSUNNYVALE, Calif. , Tháng một. Ngày 19 tháng 2 năm 2023 (DÂY TIN TỨC GLOBE) -- Satori, nền tảng bảo mật dữ liệu hàng đầu trong ngành, hôm nay đã thông báo rằng họ đang bổ sung hỗ trợ cho MongoDB (NASDAQ. MDB), cơ sở dữ liệu tài liệu NoSQL có thể mở rộng và linh hoạt được sử dụng để lưu trữ và xử lý dữ liệu khối lượng lớn. MongoDB có hơn 37.000 khách hàng tại hơn 100 quốc gia và nền tảng cơ sở dữ liệu MongoDB đã được tải xuống

Để tăng giá trị trường số trong Mongoose, bạn có thể sử dụng toán tử $inc. Toán tử này tăng một trường theo một giá trị đã chỉ định

Dưới đây là một ví dụ cập nhật giá trị của trường clicks bằng cách sử dụng toán tử $inc

const mongoose = require('mongoose')

const Link = mongoose.model('Link', { url: String, clicks: Number })

const id = 'B12'
await Link.findByIdAndUpdate(id, { clicks: { $inc: 1 } })

Toán tử $inc chấp nhận cả giá trị dương và âm. Vì vậy, nó cũng có thể được sử dụng để giảm giá trị a được hiển thị bên dưới

Trước tiên chúng ta hãy tạo một bộ sưu tập với các tài liệu -

>db.decrementingOperationDemo.insertOne({"ProductName":"Product-1","ProductPrice":756});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd7a8ae6d78f205348bc63c")
}
>db.decrementingOperationDemo.insertOne({"ProductName":"Product-2","ProductPrice":890});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd7a8b86d78f205348bc63d")
}
>db.decrementingOperationDemo.insertOne({"ProductName":"Product-3","ProductPrice":994});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd7a8c66d78f205348bc63e")
}
>db.decrementingOperationDemo.insertOne({"ProductName":"Product-4","ProductPrice":1000});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd7a8d06d78f205348bc63f")
}

Sau đây là truy vấn để hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find() -

> db.decrementingOperationDemo.find().pretty();

Điều này sẽ tạo ra đầu ra sau -

{
   "_id" : ObjectId("5cd7a8ae6d78f205348bc63c"),
   "ProductName" : "Product-1",
   "ProductPrice" : 756
}
{
   "_id" : ObjectId("5cd7a8b86d78f205348bc63d"),
   "ProductName" : "Product-2",
   "ProductPrice" : 890
}
{
   "_id" : ObjectId("5cd7a8c66d78f205348bc63e"),
   "ProductName" : "Product-3",
   "ProductPrice" : 994
}
{
   "_id" : ObjectId("5cd7a8d06d78f205348bc63f"),
   "ProductName" : "Product-4",
   "ProductPrice" : 1000
}

Sau đây là truy vấn giảm một giá trị -

> db.decrementingOperationDemo.update({_id: ObjectId("5cd7a8d06d78f205348bc63f"), ProductPrice: {$gt: 0}}, {$inc: {ProductPrice: -10}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Hãy để chúng tôi kiểm tra tài liệu một lần nữa -

> db.decrementingOperationDemo.find().pretty();

Điều này sẽ tạo ra đầu ra sau -

{
   "_id" : ObjectId("5cd7a8ae6d78f205348bc63c"),
   "ProductName" : "Product-1",
   "ProductPrice" : 756
}
{
   "_id" : ObjectId("5cd7a8b86d78f205348bc63d"),
   "ProductName" : "Product-2",
   "ProductPrice" : 890
}
{
   "_id" : ObjectId("5cd7a8c66d78f205348bc63e"),
   "ProductName" : "Product-3",
   "ProductPrice" : 994
}
{
   "_id" : ObjectId("5cd7a8d06d78f205348bc63f"),
   "ProductName" : "Product-4",
   "ProductPrice" : 990
}

MongoDB cung cấp các loại toán tử cập nhật trường khác nhau để cập nhật giá trị của các trường trong tài liệu và toán tử $inc là một trong số đó. Toán tử này được sử dụng để tăng giá trị của các trường lên số lượng đã chỉ định hoặc để tăng trường theo giá trị đã cho

Bạn cũng có thể sử dụng toán tử này trong các tài liệu nhúng/lồng nhau. Bạn có thể sử dụng toán tử này trong các phương thức như update(), updateOne(), v.v. theo yêu cầu của bạn

  • Toán tử này chấp nhận các giá trị dương và âm
  • Nếu trường đã cho không tồn tại thì toán tử này sẽ tạo trường và đặt giá trị cho trường đó
  • Toán tử này sẽ tạo ra lỗi, nếu bạn sử dụng toán tử này với trường giá trị null
  • Nó là một hoạt động nguyên tử trong một tài liệu duy nhất

cú pháp

{ $inc: { field1: amount1, field2: amount2, .. } }

Trong các ví dụ sau, chúng tôi đang làm việc với

cơ sở dữ liệu. GeekforGeek
Bộ sưu tập. người đóng góp
Tài liệu. ba tài liệu chứa thông tin chi tiết về những người đóng góp ở dạng cặp trường-giá trị

Giảm giá trị trong MongoDB

Tăng giá trị của trường bằng toán tử $inc

Trong ví dụ này, chúng tôi đang cập nhật trường tài liệu của nhân viên có tên là Mohit bằng cách tăng giá trị của xếp hạng lên 2

Giảm trong MongoDB là gì?

Trong MongoDB, map-reduce là mô hình lập trình xử lý dữ liệu giúp thực hiện các thao tác trên tập dữ liệu lớn và tạo ra kết quả tổng hợp . MongoDB cung cấp hàm mapReduce() để thực hiện các thao tác thu nhỏ bản đồ. Chức năng này có hai chức năng chính, tôi. e. , chức năng ánh xạ và giảm chức năng.

Sự khác biệt giữa thư giãn và giảm trong MongoDB là gì?

$unwind là giai đoạn quy trình tổng hợp, giai đoạn này giải cấu trúc đầu ra theo từng phần tử trong mảng và $reduce là toán tử quy trình kết hợp để kết hợp các phần tử trong một mảng . $reduce cần được sử dụng với giai đoạn đường ống tổng hợp như $project.

Làm cách nào để cập nhật giá trị số trong MongoDB?

Trình vỏ MongoDB cung cấp các phương thức sau để cập nhật tài liệu trong bộ sưu tập. .
Để cập nhật một tài liệu, hãy sử dụng db. thu thập. cập nhậtOne()
Để cập nhật nhiều tài liệu, hãy sử dụng db. thu thập. cập nhậtMany()
Để thay thế một tài liệu, hãy sử dụng db. thu thập. thay thếOne()

Làm cách nào để tăng giá trị trường trong MongoDB?

Trong MongoDB, toán tử $inc được sử dụng để tăng giá trị của một trường theo một lượng xác định . Toán tử $inc thêm dưới dạng một trường mới khi trường đã chỉ định không tồn tại và đặt trường thành số tiền đã chỉ định. $inc chấp nhận giá trị dương và âm dưới dạng số tiền gia tăng.