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

MongoDB $ nhân

Trong MongoDB, $multiply toán tử đường ống tổng hợp nhân các số với nhau và trả về kết quả.

Để sử dụng $multiply toán tử, chuyển các số cho toán tử trong một mảng.

Các đối số có thể là bất kỳ biểu thức hợp lệ nào, miễn là chúng phân giải thành số.

Ví dụ

Giả sử chúng ta có một tập hợp được gọi là data với tài liệu sau:

{ "_id" : 1, "a" : 1000, "b" : 2, "c" : 3 }

Chúng ta có thể sử dụng $multiply toán tử trong một đường ống tổng hợp để nhân hai hoặc nhiều số đó với nhau.

Nhân 2 số

Dưới đây là một ví dụ về nhân hai số với nhau.

db.data.aggregate(
   [
     { $project: { 
        _id: 0,
        a: 1,
        b: 1,
        result: { $multiply: [ "$a", "$b" ] } } 
         }
   ]
)

Kết quả:

{ "a" : 1000, "b" : 2, "result" : 2000 }

Nhân 3 số

Đây là một lần nữa, ngoại trừ lần này, chúng tôi nhân cả ba số với nhau.

db.data.aggregate(
   [
     { $project: { 
        _id: 0,
        a: 1,
        b: 1,
        c: 1,
        result: { $multiply: [ "$a", "$b", "$c" ] } } 
         }
   ]
)

Kết quả:

{ "a" : 1000, "b" : 2, "c" : 3, "result" : 6000 }

Giá trị phủ định

Các con số có thể là số dương hoặc số âm.

Giả sử chúng ta thêm tài liệu sau vào bộ sưu tập của mình:

{ "_id" : 2, "a" : 1000, "b" : -2, "c" : -3 }

Bây giờ, hãy chạy lại các ví dụ trước và xem điều gì sẽ xảy ra:

db.data.aggregate(
   [
     { $project: { 
        _id: 0,
        a: 1,
        b: 1,
        result: { $multiply: [ "$a", "$b" ] } } 
         }
   ]
)

Kết quả:

{ "a" : 1000, "b" : 2, "result" : 2000 }
{ "a" : 1000, "b" : -2, "result" : -2000 }

Và đây là với ba con số:

db.data.aggregate(
   [
     { $project: { 
        _id: 0,
        a: 1,
        b: 1,
        c: 1,
        result: { $multiply: [ "$a", "$b", "$c" ] } } 
         }
   ]
)

Kết quả:

{ "a" : 1000, "b" : 2, "c" : 3, "result" : 6000 }
{ "a" : 1000, "b" : -2, "c" : -3, "result" : 6000 }

Khi bạn nhân một số âm với một số dương thì tích luôn âm. Nhưng khi bạn nhân hai số âm hoặc hai số dương, tích luôn là số dương.

Thêm số riêng của bạn

Bạn không nhất thiết chỉ bị giới hạn ở các số trong / s tài liệu. Bạn có thể sử dụng các số của riêng mình nếu bạn cần nhân tất cả các trường với một số tiền cố định.

Ví dụ:

db.data.aggregate(
   [
     { $project: { 
        _id: 0,
        result: { $multiply: [ "$a", "$b", "$c", 2.5 ] } } 
         }
   ]
)

Kết quả:

{ "result" : 15000 }
{ "result" : 15000 }


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongooseError [MongooseServerSelectionError]:kết nối <monitor> với 52.6.250.237:27017 đã đóng

  2. ScaleGrid thông báo lưu trữ MongoDB được chia sẻ trên Amazon AWS

  3. Làm cách nào để cập nhật giá trị của tài liệu nhúng cụ thể, bên trong một mảng, của một tài liệu cụ thể trong MongoDB?

  4. Cách bảo mật MongoDB bằng tên người dùng và mật khẩu

  5. MongoDB 4.2 Quản lý &Giám sát mà không cần Lockin của nhà cung cấp