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

集計クエリからのカウントが正しくありません

    問題はここにあります:

    "sp": {
        $split: [
            "$sourceList.source",
            "\n"
        ],
        $split: [
            "$sourceList.source",
            " "
        ]
    }
    

    2番目の$splitのみ MongoDBによって実行され、hello\nworldを返します。 1つの文字列として。単純に同じJSONキー$splitであるため、このような「カスケード」構文はありません。 最後に勝ちます。

    これを修正するには、 $reduce> $splitを適用するには \nによって分割された配列の空白による 値:

    {
        $project: {
            "sp": {
                $reduce: {
                    input: { $split: [ "$sourceList.source", "\n" ] },
                    initialValue: [],
                    in: { $concatArrays: [ "$$value", { $split: [ "$$this", " " ] } ] }
                }
            }
        }
    }
    

    Mongo Playground



    1. Mongoidstore_inはランダムな結果を生成します

    2. KubernetesクラスターのNodeJSでECONNREFUSEDを再接続します

    3. MongoDB mapreduceで、valuesオブジェクトをフラット化するにはどうすればよいですか?

    4. Angular2ExpressJs-サーバーへのファイルのアップロード