MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Hitung Dot Product antara dua array dengan MongoDB Aggregate

Dengan asumsi kedua array memiliki panjang yang sama, Anda dapat menggunakan agregasi di bawah ini:

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

$range digunakan untuk menghasilkan array 4 elemen dalam hal ini (0,1,2,3) dan itu digunakan sebagai indeks untuk $arrayElemAt operator. $reduce cukup jumlahkan semua produk untuk indeks tertentu yang mengembalikan nilai skalar. Ada dua variabel khusus yang digunakan dalam $reduce :$$value mewakili jumlah sementara $$this mewakili indeks yang dihasilkan oleh $range




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoError:kumpulan instance server dihancurkan

  2. Memasukkan objek momentjs di Meteor Collection

  3. Array grup agregat MongoDB ke kunci:nilai jumlah

  4. Temukan elemen berdasarkan dua nilai

  5. kueri mongoDB menggunakan agregat untuk menanyakan tanggal terbaru suatu item