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

MongoDBは複数のアレイをアンワインドします

    バージョン3.2からは、$unwindで実行できます。 両方のアレイで、$cmp インデックス、および$match 等しいインデックスのみ。

    このソリューションは、サンプルドキュメントしかない場合に備えて、作成した内容を入力します。さらにドキュメントがある場合は、出力に何が表示されるかわかりませんが、ドキュメントの_idでグループ化することで解決できます。

    db.test.aggregate([
        {
            $unwind: {
                path: '$dates',
                includeArrayIndex: 'dates_index',
            }
        },
        {
            $unwind: {
                path: '$numbers',
                includeArrayIndex: 'numbers_index',
            }
        },
        {
            $project: {
                dates: 1,
                numbers: 1,
                compare: {
                    $cmp: ['$dates_index', '$numbers_index']
                }
            }
        },
        {
            $match: {
                compare: 0
            }
        },
        {
            $project: {
                _id: 0,
                dates: 1,
                numbers: 1
            }
        }
    ])
    


    1. SQLを使用したMongoDB結合のリンクと作成:パート3

    2. .NETを介してMongoDBでインデックスを作成する方法

    3. 水平方向にスケーリングされた分散システム向けの、Pub/SubでのRedisクラスターとZeroMQ

    4. MongoDBで特定の名前のインデックスを作成する方法