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

Bagaimana saya bisa mengurutkan berdasarkan beberapa bidang di mongodb dengan Perl?

Masalah dasar di sini adalah bahwa "hash" di Perl diurutkan oleh "kunci" secara default. Untuk mendapatkan "urutan penyisipan", Anda perlu menggunakan Tie::IxHash sebagai berikut:

use Tie::IxHash;

my %sort;
tie ( %sort, 'Tie::IxHash' );

my $sort = \%sort;
$sort  =  { "is_instock" => -1, "ua" => 1 };

Kemudian ketika Anda menggunakan ini dalam kueri MongoDB Anda, kunci-kunci tersebut dipertimbangkan dalam urutan Anda memasukkannya, bukan urutan leksikalnya.

Seharusnya sudah diurutkan seperti itu karena kuncinya dalam urutan leksikal, tapi saya sarankan Anda melakukan sesuatu yang salah dan Anda tetap harus mengetahui urutan penyisipannya.

Alasan sebaliknya adalah bahwa "in_stock" tidak ada, atau bukan nama jalur yang benar ke bidang tersebut. Anda perlu menentukan jalur lengkap ke bidang dengan "notasi titik" jika tidak, jalurnya tidak valid.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana saya bisa membuat bidang kenaikan otomatis di meteor?

  2. MongoDb - Kueri Array

  3. Mongoose - Mendefinisikan ulang struktur skema

  4. Luwak:CastError:Cast ke ObjectId gagal untuk nilai [objek Obyek] di jalur _id

  5. MongoDB - ukuran file sangat besar dan terus bertambah