Mongodb mongo导出数组元素

Mongodb mongo导出数组元素,mongodb,mongodb-query,Mongodb,Mongodb Query,我想导出3个不同的csv文件,这是我的文件 { "capacities" : [ { "size" : "A", "incoming_parcels" : 27, "outgoing_parcels" : 0, "empty_compartments" : 0 }, { "size" : "B", "incoming_parcels" : 11, "out

我想导出3个不同的csv文件,这是我的文件

{

"capacities" : [ 
    {
        "size" : "A",
        "incoming_parcels" : 27,
        "outgoing_parcels" : 0,
        "empty_compartments" : 0
    }, 
    {
        "size" : "B",
        "incoming_parcels" : 11,
        "outgoing_parcels" : 0,
        "empty_compartments" : 8
    }, 
    {
        "size" : "C",
        "incoming_parcels" : 2,
        "outgoing_parcels" : 1,
        "empty_compartments" : 7
    }
]
}

我希望获得容量[1]=B的所有文档,然后获得所有字段-所有大小的字段都相同

以下是我的导出语法:

mongoexport.exe --db name --collection name --type csv --out sizeB.csv -q "{'capacities.1.size': 'B'}" -f size,incoming_parcels,outgoing_parcels,empty_compartments

我还尝试了-f capacity.1.size等一种方法,您可以使用将上述查询作为运算符来过滤文档,然后使用运算符将聚合管道返回的文档写入指定的集合。然后可以从该聚合输出集合导出数据。以下概述了这一概念:

db.test.aggregate([
    {
        "$match": {
            "capacities.size": "B"
        }
    },
    {
        "$unwind": "$capacities"
    },
    {
        "$match": {
            "capacities.size": "B"
        }
    },
    {
        "$project": {            
            "size" : "$capacities.size",
            "incoming_parcels" : "$capacities.incoming_parcels",
            "outgoing_parcels" : "$capacities.outgoing_parcels",
            "empty_compartments" : "$capacities.empty_compartments",
        }
    },
    {
        "$out": "capacities_output"
    }
])
导出到csv:

mongoexport.exe --db name --collection "capacities_output" --csv > sizeB.csv --fields size,incoming_parcels,outgoing_parcels,empty_compartments

谢谢你,以后再试试看我怎么能尊敬你?@Przemek85别担心,你可以看看这个