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

複数のMongoDBレコードからの文字列の結果をMongoDBの単一の結果に連結するにはどうすればよいですか?

    $group を使用します すべてのドキュメントから配列を取得してから、 $ reduce $concat を使用 1つの文字列を取得するには:

    db.col.aggregate([
        {
            $group: {
                _id: null,
                text: { $push: "$text" }
            }
        },
        {
            $project: {
                text: {
                    $reduce: {
                        input: "$text",
                        initialValue: "",
                        in: {
                            $cond: [ { "$eq": [ "$$value", "" ] }, "$$this", { $concat: [ "$$value", " ", "$$this" ] } ]
                        }
                    }
                }
            }
        }
    ])
    

    $groupの後 すべてのtextの配列を含む単一のドキュメントを取得します 値。次に、$reduce 配列を「スキャン」し、状態を連結します($$value )現在処理されているアイテムを使用します。最初のアイテムの状態は空の文字列になるため、$condを使用しています 最初に空白がないようにします。




    1. 配列内の一致数によるMongoの並べ替え

    2. ポリゴンのクエリ$geowithin$boxmongodbは何も返しません

    3. クラスをシリアル化する方法は?

    4. エラー:get呼び出しのためのnodejsのgetaddrinfo ENOTFOUND