複数のドキュメントを1つの配列に集約する方法は?

モートン

これが私のデータ構造です:

{
    "_id" : ObjectId("5becc8e2e9427e48d0edab83"),
    "theater" : "TodayTainan",
    "geometry" : {
        "type" : "Point",
        "coordinates" : [ 
            120.196866, 
            22.99322
        ]
    },
    "movie" : [ 
        {
            "movieDate" : "上映日期:2018-07-25",
            "videoId" : [ 
                "17Y_lXjB3VI", 
                "ovbEe1-qUZ0"
            ],
            "imdbScore" : "",
            "cnName" : "不可能的任務:全面瓦解",
            "photoHref" : "https://movies.yahoo.com.tw/x/r/w420/i/o/production/movies/June2018/8LBd1GYiRhtjZMCcdOSl-1019x1500.JPG",
            "rottenScore" : "",
            "releasedTime" : [ 
                ISODate("2018-11-15T12:40:00.000Z"), 
                ISODate("2018-11-15T17:20:00.000Z"), 
                ISODate("2018-11-15T22:00:00.000Z")
            ],
            "enName" : "Mission: Impossible Fall Out",
            "goodMinePoint" : 0.75
        }, 
        {
            "movieDate" : "上映日期:2018-08-10",
            "videoId" : [ 
                "j-FAn2jGI08", 
                "6aWIWGBWlPk"
            ],
            "imdbScore" : "5.9",
            "cnName" : "巨齒鯊",
            "photoHref" : "https://movies.yahoo.com.tw/x/r/w420/i/o/production/movies/July2018/xO7qzzEwPCaipjCWkkxg-2714x3878.jpg",
            "rottenScore" : "45%",
            "releasedTime" : [ 
                ISODate("2018-11-15T15:20:00.000Z"), 
                ISODate("2018-11-15T20:00:00.000Z")
            ],
            "enName" : "The Meg",
            "goodMinePoint" : 0.3
        }
    ],
    "phone" : "06-2205151"
}

私はaddToSetこのコードのような1つのドキュメントで重複データを削除するために使用します:

db.getCollection('TaipeiEast').aggregate([
            { "$match": {
                  "theater": "TodayTainan"
                }
            },
            { "$unwind": '$movie' },
            { "$group": {
                "_id": "$_id",
                "movie": {
                  "$addToSet": {
                    "cnName": "$movie.cnName",
                    "photoHref": "$movie.photoHref"
                  }
                }
              } 
            }
          ])

1つのコレクションに多数のドキュメントがあるので、それらをクエリして、重複するムービーのない1つのムービー配列にします。

私はmatchこのように削除しようとします:

db.getCollection('TaipeiEast').aggregate([
                { "$unwind": '$movie' },
                { "$group": {
                    "_id": "$_id",
                    "movie": {
                      "$addToSet": {
                        "cnName": "$movie.cnName",
                        "photoHref": "$movie.photoHref"
                      }
                    }
                  } 
                }
              ])

すべてのドキュメントデータを取得できますが、ムービー配列は各ドキュメントから独立しています。

複数のドキュメントから1つのムービー配列を生成する方法を知っている人はいますか?前もって感謝します。

アシュワンスマダブ

試してみてください$groupnullしたがって、各ドキュメントに依存することなく、すべての映画を配列で取得できます

            { "$group": {
                "_id": null,
                "movie": {
                  "$addToSet": {
                    "cnName": "$movie.cnName",
                    "photoHref": "$movie.photoHref"
                  }
                }
              } 
            }

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

集約中に1つから複数のドキュメントを作成する

分類Dev

集計を使用して、1つのmongoドキュメントで複数の配列を個別に並べ替える方法

分類Dev

配列内のオブジェクトが複数の条件に一致するドキュメントを集約する

分類Dev

Angularは複数の配列を1つに集約します

分類Dev

json.dumpを使用して複数の配列を1つのドキュメントにダンプするにはどうすればよいですか?

分類Dev

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

分類Dev

異なるサブドキュメントを1つの配列マングースに保存する方法は?

分類Dev

サブドキュメントの配列を単一のドキュメントに集約します

分類Dev

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

分類Dev

mongodb 集約を使用してネストされた配列のドキュメントを変換する方法

分類Dev

すべてのドキュメントを集約内の配列に縮小する

分類Dev

CodeIgniterMongoDBのドキュメントに複数の配列要素を挿入する

分類Dev

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

分類Dev

Firestoreの複数のドキュメントの配列から要素を削除する方法は?

分類Dev

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

分類Dev

MongoDBは、異なるドキュメントにまたがる2つの配列のアイテムの数を集計しますか?

分類Dev

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

分類Dev

集約mongodb内のドキュメントの配列による順序

分類Dev

3つのフィールドを持つ複数のコメントを配列に格納する方法は?

分類Dev

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

分類Dev

MongoDBのコレクションではなく、配列にドキュメントを集約するにはどうすればよいですか?

分類Dev

複数の配列を持つMongoAggregateドキュメント

分類Dev

二重にネストされた配列のMongoDB内のドキュメントを集約します

分類Dev

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

分類Dev

マングースのドキュメント内の配列を集約する

分類Dev

列の値に応じて複数の列を1つに集約する方法は?

分類Dev

mongoの中間集約段階でルートドキュメントの数を数える方法は?

分類Dev

mongoの中間集約段階でルートドキュメントの数を数える方法は?

分類Dev

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

Related 関連記事

  1. 1

    集約中に1つから複数のドキュメントを作成する

  2. 2

    集計を使用して、1つのmongoドキュメントで複数の配列を個別に並べ替える方法

  3. 3

    配列内のオブジェクトが複数の条件に一致するドキュメントを集約する

  4. 4

    Angularは複数の配列を1つに集約します

  5. 5

    json.dumpを使用して複数の配列を1つのドキュメントにダンプするにはどうすればよいですか?

  6. 6

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

  7. 7

    異なるサブドキュメントを1つの配列マングースに保存する方法は?

  8. 8

    サブドキュメントの配列を単一のドキュメントに集約します

  9. 9

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

  10. 10

    mongodb 集約を使用してネストされた配列のドキュメントを変換する方法

  11. 11

    すべてのドキュメントを集約内の配列に縮小する

  12. 12

    CodeIgniterMongoDBのドキュメントに複数の配列要素を挿入する

  13. 13

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

  14. 14

    Firestoreの複数のドキュメントの配列から要素を削除する方法は?

  15. 15

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

  16. 16

    MongoDBは、異なるドキュメントにまたがる2つの配列のアイテムの数を集計しますか?

  17. 17

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

  18. 18

    集約mongodb内のドキュメントの配列による順序

  19. 19

    3つのフィールドを持つ複数のコメントを配列に格納する方法は?

  20. 20

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

  21. 21

    MongoDBのコレクションではなく、配列にドキュメントを集約するにはどうすればよいですか?

  22. 22

    複数の配列を持つMongoAggregateドキュメント

  23. 23

    二重にネストされた配列のMongoDB内のドキュメントを集約します

  24. 24

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

  25. 25

    マングースのドキュメント内の配列を集約する

  26. 26

    列の値に応じて複数の列を1つに集約する方法は?

  27. 27

    mongoの中間集約段階でルートドキュメントの数を数える方法は?

  28. 28

    mongoの中間集約段階でルートドキュメントの数を数える方法は?

  29. 29

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

ホットタグ

アーカイブ