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

Bandingkan elemen array, hapus yang memiliki skor terendah

Ini dapat dilakukan dalam beberapa langkah. Langkah pertama adalah mengambil daftar dokumen dengan skor minimum dengan menggunakan kerangka kerja agregasi dengan $match , $unwind dan $group operator yang menyederhanakan dokumen Anda untuk menemukan skor minimum untuk setiap dokumen:

lowest_scores_docs = db.school.aggregate([ 
    { "$match": {"scores.type": "homework"} },
    { "$unwind": "$scores" },  { "$match": {"scores.type": "homework"} },
    { "$group": { "_id":"$_id", "lowest_score": {"$min": "$scores.score" } } } ] )

Langkah kedua adalah mengulang kamus di atas dan menggunakan $pull operator dalam kueri pembaruan untuk menghapus elemen dari larik sebagai berikut:

for result in lowest_scores_docs["result"]:
    db.school.update({ "_id": result["_id"] }, 
        { "$pull": { "scores": { "score": result["lowest_score"] } } } )


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara membatasi pengguna mongo agar tidak menjatuhkan koleksi?

  2. Memformat ulang koleksi menggunakan pipa agregasi di Mongodb

  3. Pembuatan autogenerasi _id vs. ObjectId di MongoDB

  4. Pengindeksan pada beberapa bidang di mongoDB

  5. Grup mongo dan dorong:mendorong semua bidang