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

mongoose/mongodbカスタムソート

    db.evalを使用することをお勧めします データベース側でこれを行うことにした場合。

    別の質問から抽出した回答:

    これが直接可能だとは思いません。 sortdocumentationには、カスタム比較機能を提供する方法は確かに記載されていません。

    クライアントで並べ替えを行うのがおそらく最善ですが、サーバーで並べ替えを行うことに本当に決心している場合は、db.eval()を使用できる可能性があります。 サーバー上でソートを実行するように手配します(クライアントがそれをサポートしている場合)。

    サーバー側の並べ替え:

    db.eval(function() { 
      return db.scratch.find().toArray().sort(function(doc1, doc2) { 
        return doc1.a - doc2.a 
      }) 
    });
    

    同等のクライアント側ソートとの比較:

    db.scratch.find().toArray().sort(function(doc1, doc2) { 
      return doc1.a - doc2.b 
    });
    


    1. Node.JSを介してRedisToGoに接続する

    2. Redisを使用したマルチパラメーターマッチファインダー

    3. マングースベースのアプリアーキテクチャ

    4. MongoDB insertMany()