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

Mongoid - batasi permintaan yang berbeda

berbeda di MongoDB adalah perintah dan perintah tidak mengembalikan kursor. Hanya kursor yang mendukung limit() sedangkan hasil perintah tidak, seperti sort() tidak didukung di sini, dan menurut saya sort cukup penting untuk dijalankan terlebih dahulu, jika tidak, Anda tidak akan pernah tahu item berbeda "dua pertama" mana yang Anda dapatkan

Ada cara untuk mengatasi ini, tetapi menggunakan kerangka kerja agregasi. Dalam percakapan kueri MongoDB biasa (seperti yang Anda gunakan pada shell MongoDB), Anda akan menggunakan:

db.places.aggregate( [
    { $match: { 'tags' : { $in: [ 'food' ] } } },
    { $group: { '_id': '$name' } },
    { $sort: { 'name': 1 } },
    { $limit: 2 },
] );

Di Mongoid saya curiga Anda dapat mengubah baris pertama menjadi:

Place.collection.aggregate( [



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo - kueri, Dokumen yang disematkan tidak cocok kecuali notasi titik

  2. Bagaimana cara rata-rata nilai yang dijumlahkan di mongodb?

  3. MongoEngine:Menambahkan Bidang ke Dokumen Dinamis

  4. Implementasi pengindeksan internal MongoDB?

  5. Masukkan atau perbarui subdokumen dengan aman di MongoDB