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

Dokumen tersemat bagian atas Mongodb

Saya pikir yang Anda inginkan adalah perintah $addToSet - yang akan mendorong elemen ke array hanya jika belum ada. Saya telah menyederhanakan contoh Anda sedikit untuk singkatnya:

db.meters.findOne()
{
    "_id" : ObjectId("4f8e95a718bc9c7da1e6511a"),
    "config" : {
        "someparam" : 4.5
    },
    "data" : [
        {
            "Meter" : 123456789,
        }
    ],
    "key" : "20120418_123456789"
}

Sekarang jalankan:

db.meters.update({"key" : "20120418_123456789"}, {"$addToSet": {"data" : {"Meter" : 1234}}})

Dan kami mendapatkan versi terbaru:

db.meters.findOne()
{
    "_id" : ObjectId("4f8e95a718bc9c7da1e6511a"),
    "config" : {
        "someparam" : 4.5
    },
    "data" : [
        {
            "Meter" : 123456789,
        },
        {
            "Meter" : 1234
        }
    ],
    "key" : "20120418_123456789"
}

Jalankan perintah yang sama lagi dan hasilnya tidak berubah.

Catatan:Anda mungkin akan mengembangkan dokumen-dokumen ini, terutama jika bidang ini tidak dibatasi dan menyebabkan perpindahan yang sering (relatif mahal) dengan memperbarui dengan cara ini - Anda harus melihat di sini untuk mendapatkan ide tentang cara menguranginya:

http://www.mongodb.org/display/DOCS/Padding +Factor#PaddingFactor-ManualPadding




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cara Mengoptimalkan Kinerja ClusterControl dan Komponennya

  2. Cara mengatur bidang mongo dari variabel

  3. MongoDB $isNumber

  4. Tidak dapat Mendekode SubValue ObjectId dari hasil MongoDB di Golang

  5. Bagaimana cara menangkap kesalahan saat memasukkan dokumen MongoDB yang melanggar indeks unik?