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

Pymongo menemukan nilai dalam subdokumen

Jawaban yang diposting oleh @AnthonyWinzlet memiliki kelemahan yaitu perlu mengaduk semua dokumen dalam koleksi pengguna dan melakukan $lookup s yang relatif mahal. Jadi tergantung pada ukuran Users Anda pengumpulan mungkin lebih cepat untuk melakukan ini:

  1. Letakkan indeks di users.pet dan users.car :db.users.createIndex({pet: 1, car: 1})
  2. Masukkan indeks pada cars.model :db.cars.createIndex({model: 1})
  3. Masukkan indeks pada pets.name :db.pets.createIndex({name: 1})

Maka Anda cukup melakukan ini:

  1. Dapatkan daftar semua "Tesla" yang cocok mobil:db.cars.find({model: "Tesla"})
  2. Dapatkan daftar semua "Mickey" yang cocok hewan peliharaan:db.pets.find({name: "Mickey"})
  3. Temukan pengguna yang Anda minati:db.users.find({car: { $in: [<ids from cars query>] }, pet: { $in: [<ids from pets query>] }})

Itu cukup mudah dibaca dan dipahami ditambah ketiga kueri sepenuhnya dicakup oleh indeks sehingga dapat diharapkan secepat mungkin.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara menemukan jumlah berdasarkan kondisi dalam Agregasi MOngoDB?

  2. kriteria mongoid rails temukan berdasarkan asosiasi

  3. melakukan matematika di searchqueries mongodb

  4. Sintaks Java dengan MongoDB

  5. Pymongo :insert_many + indeks unik