MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để sắp xếp theo nhiều trường trong mongodb với Perl?

Vấn đề cơ bản ở đây là một "băm" trong Perl được sắp xếp theo "khóa" theo mặc định. Để có được "thứ tự chèn", bạn cần sử dụng Tie::IxHash như sau:

use Tie::IxHash;

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

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

Sau đó, khi bạn sử dụng điều này trong truy vấn MongoDB của mình, các khóa được xem xét theo thứ tự bạn đã chèn chúng, thay vì thứ tự từ vựng của chúng.

Dù sao thì lẽ ra nó phải được sắp xếp theo cách đó vì các phím có thứ tự từ vựng, nhưng tôi khuyên bạn đã làm sai điều gì đó và dù sao thì bạn cũng cần phải lưu ý về thứ tự chèn.

Lý do khác là "in_stock" không tồn tại hoặc không phải là tên đường dẫn thực sự đến trường. Bạn cần xác định đường dẫn đầy đủ đến trường bằng "ký hiệu dấu chấm" nếu không thì đường dẫn không hợp lệ.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Spring java MongoDB chú thích @Query cho các bản ghi đầu tiên hoặc đầu tiên của thứ tự

  2. Lặp lại qua một mảng chuỗi, được tìm nạp từ MongoDB

  3. Làm thế nào để sử dụng MongoDB Stitch Auth trong ứng dụng isomorphic hoặc SSR?

  4. MongoDB $ set chỉ ghi trường hay toàn bộ tài liệu?

  5. MongoDB trên Azure:Làm thế nào để Chọn Loại Phiên bản Phù hợp?