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

サブドキュメントをMongoDBのルートレベルにフラット化するにはどうすればよいですか?

    MongoDBプロジェクション、つまり$projectを使用できます 集約フレームワークパイプラインオペレーターも同様です。 (推奨される方法)。 projectを使用したくない場合 このリンクを確認してください

    db.collection.aggregation([{$ project {。。}}]);

    以下はあなたのケースの例です:

    db.collectionName.aggregate
    ([
        { $project: { a: 1, 'b': '$subdoc.b', 'c': '$subdoc.c'} }
    ]);
    

    期待どおりの出力が得られます。つまり

        {
            "a" : 1,
            "b" : 2,
            "c" : 3
        }
    


    1. SQLで最大値を持つ行を選択する3つの方法

    2. redisdbsizeコマンドの精度

    3. MongoDB-ソケットのアクセスが拒否されました:/tmp/mongodb-27017.sock

    4. phpからmongoDBのIDで参照されているドキュメントを削除するにはどうすればよいですか?