MongoExport:你能查询一个字段吗?

MongoExport: Can you query a field?

我目前正在研究使用 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"
        }
      ]
}

我可以使用您建议的任何工具,可能 space 从 Mongo 导出。 但重要的是,它必须被优化并导出 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

playground1

选项 2: 您通过 $out 从聚合输出到输出集合,然后 mongoexport。

playground2