Mongodb mongo导出数组元素
我想导出3个不同的csv文件,这是我的文件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
{
"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别担心,你可以看看这个