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

Dokumen tersemat kueri MongoAlchemy

Mongo tidak mendukung pengembalian subdokumen. Anda dapat menggunakan $elemMatch untuk memfilter sehingga hanya dokumen dengan atribut yang cocok yang dikembalikan, tetapi Anda harus mengambil sendiri komentarnya. Anda dapat sedikit mengoptimalkan dengan hanya mengembalikan kolom komentar sebagai berikut:

query = Book.query.filter({Book.comments:{'$elemMatch':{Comment.user_id:'user_c'}}})
query = query.fields(Book.comments.elem_match({Comment.user_id:'user_c'}))
result = query.limit(1).first()
print 'query result:', result.comments

Perhatikan bahwa ada bug dengan ini hingga 0.14.3 (yang baru saja saya rilis beberapa menit yang lalu) yang akan menyebabkan results.comments tidak berfungsi.

Catatan lain yang sangat penting adalah bahwa elem_match yang saya lakukan di sana hanya mengembalikan elemen pencocokan pertama. Jika Anda ingin semua elemen yang cocok, Anda harus memfilternya sendiri:

query = Book.query.filter({Book.comments:{'$elemMatch':{Comment.user_id:'user_c'}}})
result = query.limit(1).first()
print 'query result:', [c for c in result.comments if c.user_id == 'user_c']



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:Mendapatkan Kursor Klien::yield tidak dapat membuka kunci b/c peringatan kunci rekursif saat menggunakan findAndModify dalam dua contoh proses

  2. Pilih berdasarkan stempel waktu dan perbarui stempel waktu dengan nol

  3. digunakan untuk waktu pembuatan ObjectId mongodb

  4. MongoError:sambungkan ECONNREFUSED 127.0.0.1:27017

  5. Nilai Bidang Bersarang Kueri Mongo dengan kunci induk dua tingkat yang tidak diketahui