sql >> データベース >  >> NoSQL >> MongoDB

Perlでmongodbの複数のフィールドで並べ替えるにはどうすればよいですか?

    ここでの基本的な問題は、Perlの「ハッシュ」がデフォルトで「キー」の順に並べられていることです。 「挿入順序」を取得するには、 Tie ::IxHash<を使用する必要があります。 / code> 次のように:

    use Tie::IxHash;
    
    my %sort;
    tie ( %sort, 'Tie::IxHash' );
    
    my $sort = \%sort;
    $sort  =  { "is_instock" => -1, "ua" => 1 };
    

    次に、これをMongoDBクエリで使用すると、キーは、字句の順序ではなく、挿入した順序で考慮されます。

    キーは辞書式順序であるため、とにかくそのように順序付けられているはずですが、何か間違ったことをしたので、とにかく挿入順序に注意する必要があります。

    それ以外の理由は、「in_stock」が存在しないか、フィールドへの実際のパス名ではないことです。 "ドット表記"<を使用して、フィールドへのフルパスを指定する必要があります。 / a> それ以外の場合、パスは無効です。




    1. PythonでBSONファイルを読みますか?

    2. MongoDB Aggregationは、文字列の配列を単一の文字列に結合します

    3. RedisINCRの同時実行性

    4. node.jsMongoDBクエリが結果を返さない