MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как мога да сортирам по множество полета в mongodb с Perl?

Основният проблем тук е, че "хеш" в Perl е подреден по "ключ" по подразбиране. За да получите „реда на вмъкване“, трябва да използвате Tie::IxHash както следва:

use Tie::IxHash;

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

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

След това, когато използвате това във вашата MongoDB заявка, ключовете се разглеждат в реда, в който сте ги вмъкнали, а не в техния лексиален ред.

Така или иначе трябваше да бъде подредено по този начин, тъй като ключовете са в лексикален ред, но предполагам, че сте направили нещо нередно и така или иначе трябва да сте наясно с реда на вмъкване.

Другата причина е, че „in_stock“ не съществува или не е истинското име на пътя към полето. Трябва да посочите пълния път до полето с "нотация с точки" в противен случай пътят е невалиден.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Стойността по подразбиране не е зададена при използване на Актуализация с Upsert като true

  2. Все още ли се поддържат ограниченията за уникалност на ниво поле в Mongo(ose)?

  3. Как да проектираме актуализирани стойности само с помощта на findOneAndUpdate във вграден масив Mongoose?

  4. Как да създам MongoDB дъмп на моята база данни?

  5. как да получите обяснение на Python Mongo Aggregate с помощта на db.command?