首页 > 解决方案 > 使用 $out 来满足此类需求的正确原型是什么?

问题描述

我是 MongoDb 的新手,我想将属于“Tommy”的“销售”的详细信息保存在一个名为“result1”的新集合中。我处理的集合如下:

    "food seller" : {
        "seller" : "Tommy",
        "sellings" : [
            {
                "FOOD" : {
                    "food name" : "Rice"
                }
            },
            {
                "FOOD" : {
                    "food name" : "Noby",
                }
            }
        ]
    }

我尝试了以下方法,但毫无疑问,它们将不起作用。不正确!

db.collection.aggregate([ {$project:{"food seller.seller":"Tommy"}}, {$out:"result1"}]);

db.collection.aggregate([ {$project:{"Tommy":"$food seller.seller.sellings"}}, {$out:"result1"} ]);

db.collection.aggregate([ {$project:{"food seller.seller":"Tommy"}}, {$out:"result1"}]);

我知道我的问题是没有得到正确的原型来满足这种要求。意思是,上面的那些代码不是处理“销售”数组,它们只是处理“卖家”。

总而言之,希望将“Tommy”的“销售”数组放入名为“result1”的获胜集合中。

标签: arraysmongodbaggregation-framework

解决方案


db.collection.aggregate([{$match:{"food seller.seller":"Tommy"}},{$project:{"food seller.sellings.FOOD":1}},{$out:"result"}]);

此代码将属于“Tommy”的“销售”数组内容提取到一个名为“result”的新集合中。因此,如果您编写,db.result.find({});您将单独查看该数组。——</p>


推荐阅读