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

MongoDB $ chia

Trong MongoDB, $divide toán tử đường ống tổng hợp chia một số cho một số khác và trả về kết quả.

Để sử dụng $divide , chuyển các số trong một mảng. $divide toán tử sẽ chia số đầu tiên cho số thứ hai. Nói cách khác, số đầu tiên là số bị chia và số thứ hai là số bị chia.

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 }

Chúng ta có thể sử dụng $divide toán tử trong một đường ống tổng hợp để chia một trong những số đó cho số kia.

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

Kết quả:

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

Nếu chúng ta muốn chia b trường của a , chúng tôi sẽ cần hoán đổi chúng.

Ví dụ:

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

Kết quả:

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

Số phủ định

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 }

Điều này bao gồm một số âm. Nhưng đó không phải là vấn đề, bởi vì một số âm vẫn là một số và chúng ta chắc chắn có thể chia bất kỳ số nào cho một số âm.

Ví dụ:

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

Kết quả:

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

Ở đây nó được chuyển đổi xung quanh, để chúng tôi chia một số âm cho một số dương:

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

Kết quả:

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

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 chia một trường cho một số tiền cố định.

Ví dụ:

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

Kết quả:

{ "result" : 5000 }
{ "result" : 5000 }

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kéo và addtoset cùng lúc với mongo

  2. Sáu thành phần quan trọng của quản trị dữ liệu thành công

  3. PyMongo - lặp lại con trỏ

  4. Điều gì đang xảy ra với Meteor và Fibers / bindEnosystem ()?

  5. MongoDB PHP UTF-8 sự cố