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

Mongodb mengurutkan dokumen berdasarkan nilai komputasi yang kompleks

$temp_score . Anda dan $temp_votes belum ada di $divide . Anda .

Anda dapat melakukan $project lainnya :

db.user.aggregate([{
    "$project": {
        'temp_score': {
            "$add": ["$total_score", 100],
        },
        'temp_votes': {
            "$add": ["$total_votes", 20],
        }
    }
}, {
    "$project": {
        'temp_score':1,
        'temp_votes':1,
        'weight': {
            "$divide": ["$temp_score", "$temp_votes"]
        }
    }
}])

atau menghitung ulang temp_score dan temp_votes di $divide :

db.user.aggregate([{
    "$project": {
        'temp_score': {
            "$add": ["$total_score", 100],
        },
        'temp_votes': {
            "$add": ["$total_votes", 20],
        },
        'weight': {
            "$divide": [
                { "$add": ["$total_score", 100] },
                { "$add": ["$total_votes", 20] }
            ]
        }
    }
}]);

Anda juga dapat melakukan ini dalam satu $project menggunakan $let operator yang akan digunakan untuk membuat 2 variabel temp_score dan temp_votes . Tetapi hasilnya akan dapat diakses di bawah satu bidang (di sini total ) :

db.user.aggregate([{
    $project: {
        total: {
            $let: {
                vars: {
                    temp_score: { $add: ["$total_score", 100] },
                    temp_votes: { $add: ["$total_votes", 20] }
                },
                in : {
                    temp_score: "$$temp_score",
                    temp_votes: "$$temp_votes",
                    weight: { $divide: ["$$temp_score", "$$temp_votes"] }
                }
            }
        }
    }
}])



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Perbarui bidang di dalam daftar menggunakan driver MongoDB C#

  2. luwak | Perangkat Tengah | Operasi rollback dilakukan oleh pra/pasca kait ketika kesalahan dilemparkan

  3. Topologi saat ini tidak mendukung sesi

  4. Temukan url duplikat di mongodb

  5. Masukkan atau Perbarui ke Mongo menggunakan luwak dan ubah elemen dalam saat memperbarui