我目前正在开发一个使用Mongo数据库的解决方案。对此,我们必须使用MongoExport。有没有一种方法可以增强我的MongoExport命令,在字段中包含一个过滤器?
例如:-q:"{"Status": "COMPLETE"}"
-f:Id,EanCode,Channels:{"$elemMatch":{"ChannelId":"Test"}
更新:大家好,根据我在评论中添加的建议,我是示例文档。
文件:
{
"Id": "1"
"Status": "COMPLETE",
"EanCode": "1234567890",
"Barcode": "100100100",
"Name": "Test Product",
"Channels": [
{
"ChannelId": "Test"
},
{
"ChannelId": "Dumbeldore"
}
]
}
结果:
{
"Id": "1"
"Status": "COMPLETE",
"EanCode": "1234567890",
"Channels": [
{
"ChannelId": "Test"
}
]
}
我可以使用你建议的任何工具,可能会从MongoExport中挤出空间。但重要的是,它必须进行优化并导出JSON对象。
感谢您的关注和帮助:(
选项1。我认为您不能直接使用mongoexport,但可以通过聚合进行:
echo 'db.test.aggregate([{$match:{Status:"COMPLETE","Channels.ChannelId":"Test"} },{$addFields:{Channels:{ $filter: { input: "$Channels", as: "ch", cond: {$eq:["$$ch.ChannelId","Test"] } } }} } ])' | mongo --authenticationDatabase admin --port 27017 -u test -p xxxx --quiet > out.json
操场1
选项2:通过$out将聚合输出到输出集合,然后再进行mongoexport。
操场2