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

Memperbarui Array Bersarang Luwak

Anda mungkin ingin memikirkan kembali model data Anda. Seperti saat ini, Anda tidak dapat mencapai apa yang Anda inginkan. Bidang sensor mengacu pada array. Dalam format dokumen ideal yang Anda berikan, Anda memiliki satu objek di dalam larik itu. Kemudian di dalam objek itu, Anda memiliki dua bidang dengan kunci yang sama persis. Dalam objek JSON, atau dokumen mongo dalam konteks ini, Anda tidak dapat memiliki kunci duplikat dalam objek yang sama.

Tidak jelas apa yang Anda cari di sini, tetapi mungkin yang terbaik adalah melakukan sesuatu seperti ini:

{
"_id" : "Manasa",
"name" : "Manasa Sub",
"sensors" : [ 
    {
    "sensor_name" : "ras",
    "_id" : ObjectId("57da0a4bf3884d1fb2234c74"),
    "measurements" : [ 
        {
            "time" : "8:00"
        },
        {
            "time" : "9:00"
        }
    ]
},
{
    // next sensor in the sensors array with similar format
    "_id": "",
    "name": "",
    "measurements": []
}],
}

Jika ini yang Anda inginkan, maka Anda dapat mencoba ini:

User.findOneAndUpdate(
    {  _id:req.body._id "sensors.sensor_name": req.body.sensor_name },
    { $push: { "sensors.0.measurements": { "time": req.body.time } } }
);

Dan sebagai catatan tambahan, jika Anda hanya akan menyimpan satu string di setiap objek dalam larik pengukuran, Anda mungkin ingin menyimpan nilai sebenarnya alih-alih seluruh objek { time: "value" } . Anda mungkin akan lebih mudah menangani data dengan cara ini.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. hitung frekuensi menggunakan kerangka agregat mongodb

  2. Ubah tipe data dari string ke tanggal saat melewatkan data yang hilang

  3. Membersihkan file yatim dari GridFS

  4. grup di mongo tidak termasuk nilai nol

  5. Cara menutup kursor di MongoKit