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

Tính sản phẩm chấm giữa hai mảng với MongoDB Aggregate

Giả sử cả hai mảng có cùng độ dài, bạn có thể sử dụng tổng hợp dưới đây:

db.collection.aggregate([
    {
        $project: {
            dotProduct: {
                $reduce: {
                    input: { $range: [ 0, { $size: "$source" }] },
                    initialValue: 0,
                    in: { $add: [ "$$value", { $multiply: [ { $arrayElemAt: [ "$source", "$$this" ] }, { $arrayElemAt: [ "$sink", "$$this" ] } ] } ] }
                }
            }
        }
    }    
])

$ range được sử dụng để tạo một mảng 4 phần tử trong trường hợp này là (0,1,2,3) và chúng được sử dụng làm chỉ mục cho $ arrayElemAt nhà điều hành. $ giảm chỉ đơn giản là tính tổng tất cả các sản phẩm cho các chỉ mục cụ thể trả về giá trị vô hướng. Có hai biến đặc biệt được sử dụng trong $reduce :$$value đại diện cho tổng trong khi $$this đại diện cho chỉ mục được tạo bởi $range




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Hiện có sẵn:Phiên bản MongoDB được lưu trữ đầy đủ trên AWS

  2. (Angular 2) Cách điền một menu thả xuống dựa trên một lựa chọn thả xuống khác

  3. không thể bắt đầu mongodb bằng sudo

  4. Solr Mongo / DocDB Delta Import Query không hoạt động

  5. Mongo Change Streams chạy nhiều lần (loại):Ứng dụng nút chạy nhiều phiên bản