Mongodb 如何从Mongo DB集合中提取特定字段

Mongodb 如何从Mongo DB集合中提取特定字段,mongodb,mongodb-query,mongoexport,Mongodb,Mongodb Query,Mongoexport,我的mongo收藏中有2250张唱片 下面是该收藏中的一条记录- "_id" : bjectId("57e57e3fb04c6373f7000002"), "message" : "<logentry revision='15234'><author>447085</author><date>2016-07-19T12:39:19.707782Z</date><paths><path prop-mods='fa

我的mongo收藏中有2250张唱片

下面是该收藏中的一条记录-

"_id" : bjectId("57e57e3fb04c6373f7000002"),
"message" : "<logentry   revision='15234'><author>447085</author><date>2016-07-19T12:39:19.707782Z</date><paths><path   prop-mods='false'   text-mods='true'   kind='file'   action='M'>/itdp/branches/itdpux/branches/base/itdp2.0/src/com/cts/race/beans/ProgramChronicleBean.java</path></paths><msg>day week month function addition </msg></logentry>",
    "@version" : "1",
    "@timestamp" : ISODate("2015-09-23T19:10:54.824Z"),
    "path" : "C:/DevInsight/svnpredictor/svn/svn.log",
    "host" : "WIN-5BRSCLOQIVN",
    "type" : "XML",
    "author" : "447085",
    "revision" : "15234",
    "date" : "2016-07-19T12:39:19.707782Z",
    "paths" : { "path" : [ 
            {   "action" : "M",
                "kind" : "file",
                "prop-mods" : "false",
                "text-mods" : "true",
                "content" : "/itdp/branches/itdpux/branches/base/itdp2.0/src/com/cts/race/beans/ProgramChronicleBean.java"
            } ] }
我用上面的命令得到下面的输出-

{“_id”:{“$oid”:“57E57E3FB04C6373F700003”},“路径”:{“路径”:[{///整个路径标记内容//}]

我的实际输出应该如下所示-

修订号,文件名 15234,/itdp/branchs/itdpux/branchs/base/itdp2.0/web/xhtml/progcronicle\u iux.xhtml

使用该命令的一个好处是,我能够提取在我指定的日期范围内的所有记录


请检查我的代码并帮助我

问题是您没有定义类型,因此mongoexport会创建一个json文件,您应该使用

--类型=csv

关于导出数组对象的实际问题,答案已在中给出


您的
路径。path
元素是一个数组。如果要正确导出它,必须使用以下命令:

C:\mongodb\bin\mongoexport --db dbname --collection cname -f 'revision,paths.path.0.content' --query "{'date': { '$lt': {'$date' : ISODate('%1')} , '$gte': {'$date': ISODate('%2') }}}"  --out "C:\test\mongodata.csv"

如果路径是随机长度的数组,那么可能会出现一些问题。在这种情况下,您必须使用循环编写自己的脚本。

感谢您提供这些链接,我之前尝试过将它们发布到我的问题中,但它们对我没有帮助。
C:\mongodb\bin\mongoexport --db dbname --collection cname -f 'revision,paths.path.0.content' --query "{'date': { '$lt': {'$date' : ISODate('%1')} , '$gte': {'$date': ISODate('%2') }}}"  --out "C:\test\mongodata.csv"