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

Node.JSとMongooseを使用してMongoDBから単純な配列にデータを取得するにはどうすればよいですか?

    $unwind オペレーター。これにより、アンワインドが適用されるリストデータフィールドのすべての要素に対して新しいレコードが生成されます。基本的にデータをフラット化します。

    データをフラット化した後、 $lookup productsで「結合」を行う演算子 productsへのフィールド コレクション。ネストされたフルーツスキーマに対してこのプロセスを繰り返します。

    これをよりよく理解するための例(未テスト)を見てみましょう

    var Schema = require('../model/schema');
    Schema.Shop.aggregate([
        { "$unwind": "$products" },
        {
            "$lookup": {
                "from": "products",
                "localField": "products",
                "foreignField": "_id",
                "as": "product"
            }
        },
        { "$unwind": "$product" },
        { "$unwind": "$product.fruits" },
        {
            "$lookup": {
                "from": "fruits",
                "localField": "product.fruits",
                "foreignField": "_id",
                "as": "fruits"
            }
        },  
        {
            "$project": {
                "nameShop": 1,
                "nameProduct": "$product.nameProduct",
                "nameFruit": "$fruits.nameFruit",
                "price": "$fruits.price",
            }
        }
    ]).exec(function (err, result){
        if (err) throw err;
        console.log(result);
    })
    

    免責事項 :上記はテストされていないコードであり、 $lookup 演算子ANDは、mongoシェルで同じ集計クエリを実行できることを意味します。




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

    2. symfony2フォームの選択とmongodb

    3. mongodbはどのようにしてデータベース/コレクションをその場で作成しますか

    4. ハウツー:HBaseバルクローディングを使用する理由とその理由