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

MongoDB menyalin bidang ke koleksi lain dengan kunci asing

Ada beberapa masalah dengan penyiapan pengujian Anda:

  • Kasus nama bidang tidak cocok (Anda mengacu pada color bukannya Color saat menyalin)
  • Hanya satu contoh kunci asing yang cocok dengan koleksi target:ObjectId('515f7db83f71d6bcb1c41a48')
  • Pembaruan Anda hanya akan memengaruhi dokumen pertama yang cocok untuk "kunci asing". Ini akan baik-baik saja untuk hubungan 1:1, tetapi tidak untuk hubungan 1:banyak

Contoh yang dikoreksi dengan mempertimbangkan hal di atas (selain dari kunci yang tidak cocok):

db.test1.User.find().forEach( 
    function(x) {
        db.test2.Car.update(
            // query 
            { userID: x._id },

            // update 
            { $set: { color: x.Color} },

            // options:
            { "multi" : true } // Update all matching documents
        );
    }
);

Yang menghasilkan pengaturan {color:blue} untuk satu-satunya kunci asing yang benar-benar cocok dengan dokumen contoh:

db.test2.Car.find()
{
    "_id" : ObjectId("515f84883f71d6bcb1c41a55"),
    "speed" : 202,
    "userID" : ObjectId("515f7db83f71d6bcb1c41a49")
}
{
    "_id" : ObjectId("515f84883f71d6bcb1c41a56"),
    "speed" : 193,
    "userID" : ObjectId("515f7db83f71d6bcb1c41a4a")
}
{
    "_id" : ObjectId("515f84883f71d6bcb1c41a54"),
    "color" : "blue",
    "speed" : 291,
    "userID" : ObjectId("515f7db83f71d6bcb1c41a48")
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. SQL RPAD()

  2. Bagaimana cara menggunakan mongodb dengan elektron?

  3. Apakah MongoDB menyediakan cara untuk menghasilkan nilai berurutan?

  4. mongodb beberapa agregasi dalam satu operasi

  5. MongoDB - Jawa | Bagaimana mengelola koneksi