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

mongodbphpはフィールドの一意の値を取得します

    標準のSQLDBMSでは、これは次のクエリで実行されます。

    SELECT type, count(*) as ct FROM table GROUP BY type ORDER BY ct;
    

    mongodbでは、これはグループ関数を使用して実行されますが、少し複雑です:

    db.collection.group(
               {key: { "type":true},
                reduce: function(obj,prev) { prev.count += 1; },
                initial: { count: 0 }
                });
    

    ここでは、キー「type」(したがって「true」)の値を返すようにdbに要求しています。各値について、指定されたreduce関数を使用して、見つかったレコードを集約します。ここでは、各レコードが表示される回数のカウントを更新しています。このクエリを実行すると、次のようになります。

    [
        {
            "type" : "report",
            "count" : 5
        },
        {
            "type" : "memo",
            "count" : 15
        }
        {
            "type" : "research",
            "count" : 3
        }
    
    ]
    

    これは注文されていないことに気付くでしょう。 mongodbのドキュメントでさえ、注文する最も簡単な方法はクライアント側で行うことだと言っています。

    関連するドキュメントは、こちら です。 。



    1. 埋め込み配列オブジェクトが変更されたときにMongooseインスタンス.save()が機能しない

    2. MongoDB:C#ドライバーを使用して_idを除くドキュメント全体を更新します

    3. MongoDB findOneAndReplace()

    4. nodejsmongodbドライバーの同期関数呼び出し