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

Mongo menemukan nilai dengan kunci induk yang tidak diketahui

Saya tidak yakin Anda akan dapat menyelesaikan ini secara elegan dengan skema Anda saat ini; slotTypes harus berupa larik sub-dokumen, yang memungkinkan $elemMatch . Anda permintaan untuk bekerja. Saat ini, itu adalah objek dengan tombol numerik.

Artinya, skema dokumen Anda harus seperti:

{
   "assetsId": {
     "0": "546cf2f8585ffa451bb68369"
  },
   "slotTypes": [
     { "usage": "json" },
     { "usage": "image" }
  ]
}

Jika mengubah tata letak data bukanlah suatu pilihan, maka pada dasarnya Anda harus memindai setiap dokumen untuk menemukan kecocokan dengan $where . Ini lambat, tidak dapat diindeks, dan canggung.

db.objects.find({$where: function() {
  for(var key in this.slotTypes) {
    if (this.slotTypes[key].usage == "json") return true;
  }
  return false;
}})

Anda harus membaca dokumentasi tentang $where untuk memastikan Anda memahami peringatannya, dan untuk cinta semua yang suci, bersihkan input Anda ke fungsi tersebut; ini adalah kode langsung yang dijalankan dalam konteks database Anda.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Pencetakan output yang cantik di pymongo

  2. Kesalahan penguraian:kesalahan sintaksis, '}' tak terduga di C:\xampp\htdocs\lib\autors.php pada baris 8

  3. Normalisasi MongoDB, kunci asing dan bergabung

  4. mongo _id bidang duplikat kunci kesalahan

  5. Mengakses MongoDB dari aplikasi AppEngine