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

dapatkan rekaman dengan setidaknya satu objek terkait

Masalah Anda adalah has_many dari Mongoid tidak meninggalkan apa pun di dokumen induk sehingga tidak ada pertanyaan pada dokumen induk yang akan melakukan sesuatu yang berguna bagi Anda. Namun, belongs_to :user di Task . Anda akan menambahkan :user_id bidang ke tasks koleksi. Itu membuat Anda mengalami hal-hal mengerikan seperti ini:

user_ids = Task.all.distinct(:user_id)
users    = User.where(:id => user_ids).limit(10)

Tentu saja, jika Anda memiliki embeds_many :tasks bukannya has_many :tasks maka Anda dapat menanyakan :tasks di dalam users koleksi yang Anda inginkan. OTOH, ini mungkin akan merusak hal lain.

Jika Anda perlu memisahkan tugas (yaitu tidak disematkan) maka Anda dapat menyiapkan penghitung di User untuk melacak jumlah tugas dan kemudian Anda dapat mengatakan hal-hal seperti:

User.where(:num_tasks.gt => 0).limit(10)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Keyset(Mencari) Pagination di Spring Data MongoDB

  2. Harap gunakan 'MongoMappingContext#setAutoIndexCreation(boolean)' atau timpa 'MongoConfigurationSupport#autoIndexCreation()' agar eksplisit

  3. Apakah Mongoose mendukung metode `findAndModify` Mongodb?

  4. Permintaan Mongo $exists tidak mengembalikan dokumen yang benar

  5. Dokumen tersemat tanpa Array?