MongoDBで複数のドキュメントを1つのドキュメントに変換する

bc110402922

ドキュメント1:

{
_id: abcdef,
name: "foo",
time: [1234],
doc: [1234]
}

ドキュメント2:

{
_id: alexa,
name: "alexa",
time: [1234],
doc: [1234]
}

期待される出力:

{
time[1234],
alexa[1234],
foo[1234]
}

MongoDBに複数のドキュメントがありますが、ドキュメントをマージして1つのドキュメントにします。

Playgroundは、複数のドキュメントを1つにマージします。

turivishal

あなたが試すことができます、

  • $addFieldsフィールドで使用$arrayToObjectて名前とドキュメントをオブジェクトとして変換rootます
  • $group を使用してルート内のオブジェクトをマルおよびマージする $mergeObjects
  • $addFields$reduceおよびを使用して配列の配列から和集合時間を取得する時間$setUnion
  • $replaceRoot を使用してルートフィールドと時間フィールドからマージされたオブジェクトを置き換える $mergeObjects
db.collection.aggregate([
  {
    $addFields: {
      root: {
        $arrayToObject: [[{ k: "$name", v: "$doc" }]]
      }
    }
  },
  {
    $group: {
      _id: null,
      root: { $mergeObjects: "$root" },
      time: { $push: "$time" }
    }
  },
  {
    $addFields: {
      time: {
        $reduce: {
          input: "$time",
          initialValue: [],
          in: { $setUnion: ["$$this", "$$value"] }
        }
      }
    }
  },
  {
    $replaceRoot: {
      newRoot: {
        $mergeObjects: ["$root", { time: "$time" }]
      }
    }
  }
])

遊び場

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

MongoDB:1つのコマンドで複数のドキュメントを更新する方法は?

分類Dev

Python:複数のYAMLドキュメントをJSONに変換する

分類Dev

複数のドキュメントを出力していたのに、なぜ1つのドキュメントを出力するのですか?

分類Dev

複数のMigraDocドキュメントを1つに連結する方法

分類Dev

複数のMongoDBドキュメントを1つにマージする方法は?

分類Dev

Googleドキュメントで複数の改行を1つに置き換えます

分類Dev

ターミナルからLibreOfficeで複数のドキュメントをマージして1つのPDFに変換する

分類Dev

Asciidoctorは複数のドキュメントをPDFに変換します

分類Dev

1つのドキュメントに複数のテキストドキュメントを追加するバッチファイル

分類Dev

1つのドキュメントに加えられた変更をmongodbの他の関連ドキュメントに伝播する方法

分類Dev

Mongodbドキュメント内の配列をJsonArrayに変換する方法

分類Dev

mongodbで複数のドキュメントを削除する方法は?

分類Dev

MongoDBで複数のドキュメントを挿入または更新する

分類Dev

C#複数のXMLNodeまたはXMLNodeListを1つのXMLドキュメントから別のXMLドキュメントにコピーする

分類Dev

PDFを複数のドキュメントに分割する方法

分類Dev

複数のIDでドキュメントを取得する

分類Dev

複数のドキュメントで$ unwindを使用する

分類Dev

RecyclerViewで複数のドキュメントを更新する方法

分類Dev

Pythonで複数の孫を持つxmlドキュメントを解析する

分類Dev

複数のドキュメントとメモ帳ドキュメントで文字列を検索する

分類Dev

cakephpを使用して1つのドキュメントに複数のExcelシートを生成する方法

分類Dev

本文、mongoose / mongodbでドキュメントを提供することにより、複数のドキュメントを更新します

分類Dev

MongoDB:1回の操作で複数のドキュメントを更新

分類Dev

Android Firestore、1つのドキュメントに複数のタイムスタンプを設定する方法

分類Dev

MongoDBとMongooseの複数のドキュメントから1つのドキュメントを作成します

分類Dev

MongoDBの複数のドキュメントに埋め込まれた複数のドキュメントを更新する

分類Dev

フォーム送信時にHTMLドキュメントを複数のドキュメントに分割する

分類Dev

ドキュメント識別子がXXXである複数のドキュメントを取得する

分類Dev

1つのドキュメントで複数の言語を翻訳する際の問題

Related 関連記事

  1. 1

    MongoDB:1つのコマンドで複数のドキュメントを更新する方法は?

  2. 2

    Python:複数のYAMLドキュメントをJSONに変換する

  3. 3

    複数のドキュメントを出力していたのに、なぜ1つのドキュメントを出力するのですか?

  4. 4

    複数のMigraDocドキュメントを1つに連結する方法

  5. 5

    複数のMongoDBドキュメントを1つにマージする方法は?

  6. 6

    Googleドキュメントで複数の改行を1つに置き換えます

  7. 7

    ターミナルからLibreOfficeで複数のドキュメントをマージして1つのPDFに変換する

  8. 8

    Asciidoctorは複数のドキュメントをPDFに変換します

  9. 9

    1つのドキュメントに複数のテキストドキュメントを追加するバッチファイル

  10. 10

    1つのドキュメントに加えられた変更をmongodbの他の関連ドキュメントに伝播する方法

  11. 11

    Mongodbドキュメント内の配列をJsonArrayに変換する方法

  12. 12

    mongodbで複数のドキュメントを削除する方法は?

  13. 13

    MongoDBで複数のドキュメントを挿入または更新する

  14. 14

    C#複数のXMLNodeまたはXMLNodeListを1つのXMLドキュメントから別のXMLドキュメントにコピーする

  15. 15

    PDFを複数のドキュメントに分割する方法

  16. 16

    複数のIDでドキュメントを取得する

  17. 17

    複数のドキュメントで$ unwindを使用する

  18. 18

    RecyclerViewで複数のドキュメントを更新する方法

  19. 19

    Pythonで複数の孫を持つxmlドキュメントを解析する

  20. 20

    複数のドキュメントとメモ帳ドキュメントで文字列を検索する

  21. 21

    cakephpを使用して1つのドキュメントに複数のExcelシートを生成する方法

  22. 22

    本文、mongoose / mongodbでドキュメントを提供することにより、複数のドキュメントを更新します

  23. 23

    MongoDB:1回の操作で複数のドキュメントを更新

  24. 24

    Android Firestore、1つのドキュメントに複数のタイムスタンプを設定する方法

  25. 25

    MongoDBとMongooseの複数のドキュメントから1つのドキュメントを作成します

  26. 26

    MongoDBの複数のドキュメントに埋め込まれた複数のドキュメントを更新する

  27. 27

    フォーム送信時にHTMLドキュメントを複数のドキュメントに分割する

  28. 28

    ドキュメント識別子がXXXである複数のドキュメントを取得する

  29. 29

    1つのドキュメントで複数の言語を翻訳する際の問題

ホットタグ

アーカイブ