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

配列内の各値の発生をカウントする方法は?

    keyの中括弧を忘れました 値であり、その行を,で終了する必要があります ;の代わりに 。

    db.issues.group({
        key: {"comments.username":true},
        initial: {sum:0},
        reduce: function(doc, prev) {prev.sum +=1},
    });
    

    更新

    commentsを実現した後 は配列です...aggregateを使用する必要があります そのため、commentsを「巻き戻す」ことができます 次にグループ化します:

    db.issues.aggregate(
        {$unwind: '$comments'},
        {$group: {_id: '$comments.username', sum: {$sum: 1}}}
    );
    

    質問のサンプルドキュメントの場合、次のように出力されます。

    {
      "result": [
        {
          "_id": "Brandon Black",
          "sum": 1
        },
        {
          "_id": "Nelson Elhage",
          "sum": 3
        }
      ],
      "ok": 1
    }
    


    1. MongoDBの配列から0の後に>=1が続く場合は、0の値を削除します

    2. Azure Redis Cache-複数のエラーTimeoutException:GET{key}の実行がタイムアウトしました

    3. MongoDBでツリー構造を再帰的にクエリする方法は?

    4. 2つの値に基づいて要素を検索します