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

Pembaruan luwak 'tidak dapat menggunakan bagian (..) untuk melintasi elemen

Coba gunakan posisi $ operator dalam pembaruan yang mengidentifikasi elemen dalam larik untuk diperbarui tanpa secara eksplisit menentukan posisi elemen dalam larik, tetapi ini hanya akan cocok dengan satu elemen pada satu waktu:

 User.update(
    { 
        "local.email": user,
        "devices.id": { "$ne": deviceID },
        "devices.name": { "$ne": deviceName }
    }, 
    { 
        "$set": { 
            "devices.$.id": deviceID,
            "devices.$.name": deviceName 
        }
    } 
);

Dari dokumen , operator $ posisional bertindak sebagai pengganti untuk elemen pertama yang cocok dengan dokumen kueri, dan bidang larik harus muncul sebagai bagian dari dokumen kueri sehingga dokumen kueri

"devices.id": { "$ne": deviceID },
"devices.name": { "$ne": deviceName }

berisi device array dan akan cocok dengan dokumen-dokumen di mana device larik id tidak sama dengan deviceID dan namanya tidak sama dengan nama yang Anda coba perbarui. Ini bahkan akan cocok dengan dokumen di mana device array kosong.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. melakukan matematika di searchqueries mongodb

  2. Array objek skema luwak

  3. Skema Mongodb untuk Posting dan Bagikan

  4. Node.js dan Passport Object tidak memiliki metode yang validPassword

  5. mongodb/mongoose findMany - temukan semua dokumen dengan ID yang terdaftar dalam array