标签: mongoexport

如何使用 mongo 导出以字符串格式导出日期时间字段?

我正在尝试使用 mongoexport 从 mongo 导出整个集合。我发现的关于日期的大多数答案都涉及查询。我不做查询。我将整个表转储为 JSON 格式。日期时间字段的导出如下:

"dateOfBirth": {
  "$date": "1999-02-02T00:00:00.000Z"
}
Run Code Online (Sandbox Code Playgroud)

我只想要日期时间字段的字符串表示形式,所以它看起来像:

"dateOfBirth": "1999-02-02T00:00:00.000Z"
Run Code Online (Sandbox Code Playgroud)

我不知道我们的 mongo 的确切版本,但它是最近的。

我该怎么做呢?

export mongodb mongoexport

6
推荐指数
1
解决办法
1492
查看次数

如果添加选择查询,则mongoexport无法正常工作

如果要导出任何mongodb数据库的任何集合,可以使用mongoexport命令.例如:

mongoexport --db dbname --collection collectionName --query '{"fields":1}' --out output.json
Run Code Online (Sandbox Code Playgroud)

但是,如果向查询添加任何选择条件,则mongoexport命令不起作用.例如,如果运行以下命令:

mongoexport --db dbname --collection collectionName --query '{},{"fields":0}' --out output.json
Run Code Online (Sandbox Code Playgroud)

生成的JSON文件包含每个字段的数据,尽管我排除了一个名为的字段fields.

那为什么会出现这种奇怪的行为呢?我该如何解决?

为了您的信息,db.colName.find({},{"fields":0})在mongoDB shell中照常工作.

我在MongoDB 2.4.3和OS X 10.9上.

谢谢.

mongodb mongoexport

5
推荐指数
1
解决办法
3411
查看次数

Mongoexport错误解析查询

我试图做一个mongoexport到CSV但只选择带有查询的某些记录.这是我的命令(windows 7 cmd):

mongoexport --host foo.com --port 27017 --username bar -p --db foo --csv --fields col1,col2,col3 --collection bar --out dump_q.csv --query '{"recent":"yes"}'
Run Code Online (Sandbox Code Playgroud)

但是输入密码后,我收到一个错误:

assertion: 16619 code FailedToParse: FailedToParse: Expecting '{': offset:0
Run Code Online (Sandbox Code Playgroud)

该命令在没有查询参数的情况下工作正常,但我无法弄清楚查询有什么问题:

--query '{"recent":"yes"}'
Run Code Online (Sandbox Code Playgroud)

任何帮助非常感谢


答案摘要:

  1. 确保使用双引号括起查询和单引号以包含字符串,例如

    --query"{'recent':'yes'}"

  2. 还要确保查询中没有空格,否则命令提示符会将其解析为另一个参数.所以没有:

    --query"{'recent':'yes'}"(注意中间的空格)

  3. 包含嵌套字段的查询不起作用,例如:

    --query"{'folder.recent':'yes'}"

mongodb mongoexport

5
推荐指数
1
解决办法
4623
查看次数

Mongoexport在CSV输出中获取嵌套对象的属性

我正在尝试使用mongoexport从mongo-db获取CSV.

我的数据采用以下格式:

{
    "_id": "99",
    "page_id": NumberLong(1122334455),
    "data": {
        "0": {
            "item_id": NumberLong(123456789),
            "item_name": "item1"

        },
        "1": {
            "item_id": NumberLong(987654321),
            "item_name": "item2"
        },
     },
    "last_updated_utc": ISODate("2013-12-19T13:17:43.994Z")

}
Run Code Online (Sandbox Code Playgroud)

为此,我使用以下命令:

mongoexport -f _id,page_id,last_updated_utc --query {page_id:1122334455} -d mydatabase -c mycollection --csv
Run Code Online (Sandbox Code Playgroud)

这给出了输出:

"99",1122334455,2013-12-19T13:17:43.994Z
exported 1 record
Run Code Online (Sandbox Code Playgroud)

问题是我需要输出中item_namedata元素.这些是动态数组,可能不包含任何项目或许多项目.

如果我添加data到字段(-f)参数,那么它只会将此作为JSON字符串输出到CSV中,用于每个对象,这对将来使用数据没有帮助.

我的目标是:

"99",1122334455,2013-12-19T13:17:43.994Z,item1
"99",1122334455,2013-12-19T13:17:43.994Z,item2
Run Code Online (Sandbox Code Playgroud)

几乎是非规范化的,或者像SQL中的外连接一样.所以它只是data项目ID.

这可能吗?如何item_id进入CSV输出?

mongodb mongoexport

5
推荐指数
2
解决办法
6541
查看次数

如何在不使用NumberInt(...)进行任何包装的情况下导出mongodb?

我想将mongodb导出为json,这是一条记录:

{"_id":{"$oid":"554f042c0e81bf483e4a4e2f"}, "batch":"3","bz":NumberInt(1)}
Run Code Online (Sandbox Code Playgroud)

问题是当我使用json加载它时:

json.loads('{"_id":{"$oid":"554f042c0e81bf483e4a4e2f"}, "batch":"3","bz":NumberInt(1)}')
Run Code Online (Sandbox Code Playgroud)

它返回ValueError: No JSON object could be decoded。这是因为json无法处理NumberInt(1)

所以,我怎么能翻译NumberInt(1)1时候我出口?

json mongodb mongoexport

5
推荐指数
1
解决办法
1220
查看次数

mongoexport 导出 0 条记录

运行此命令,导出了 0 条记录。[更改了数据库和集合名称以保护隐私]。加倍检查了语法。

 mongoexport --db db_name --collection collection_name --out collection_name_delete.json --verbose
    2015-10-15T08:18:02.825+0000    connected to: localhost
    2015-10-15T08:18:02.825+0000    exported 0 records
    root@sever_name:/mnt/data# mongo db_name
    MongoDB shell version: 3.0.0
    connecting to: db_name
    DBReplicaSet:PRIMARY> db.dip_acon_research_finals.count()
    1597113
Run Code Online (Sandbox Code Playgroud)

mongodb mongoexport

5
推荐指数
1
解决办法
5148
查看次数

mongoexport 返回科学(指数)表示法

所以我使用导出了一些集合,mongoexport并发现了一些大整数9999999999999被导出为的情况9.9999999999999e+13

所以有两个问题:为什么会这样,我该如何防止这种情况?

谢谢你。

mongodb mongoexport

5
推荐指数
1
解决办法
1185
查看次数

将对象 id 转换为字符串从 mongodb 导出

我想从 mongodb 导出,其中 objectId 将在导出时转换为字符串。

ObjectId("507c7f79bcf86cd7994f6c0e").toString()
Run Code Online (Sandbox Code Playgroud)

这不适用于导出命令。我尝试了以下但显示语法错误。

./mongoexport --host localhost --db Database --collection collection_name --type=csv --out collection.csv --fields _id.toString()
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

mongodb mongoexport

5
推荐指数
1
解决办法
1554
查看次数

Mongodb dump(过滤文档和字段)

我想打一个局部MongoDB数据库的转储(部分为,我需要过滤掉一些文件,有些领域)。然后,此转储将导入到另一台服务器上。

我不能使用mongodump实用程序,因为它不允许过滤字段。
我可以使用mongoexport实用程序,因为它允许过滤文档和字段。但是,文档指出mongoexport只能输出 JSON 文件并且:

不能可靠地保留所有丰富的 BSON 数据类型,因为 JSON 只能表示 BSON 支持的类型的一个子集。

  1. 我觉得这个说法有点含糊,我不完全理解。那么,如果我用 JSON 转储我的数据库会发生什么?我要冒什么风险?我会冒丢失某些文件的风险吗?
  2. 如果您认为我绝对应该避免在生产中使用mongoexport,我可以编写自己的 Nodejs 应用程序来进行过滤并在 BSON 中输出转储吗?或者那是不可能的?

dump filter mongodb bson mongoexport

5
推荐指数
1
解决办法
2369
查看次数

Mongodb 的 mongoexport 生成的 BSON 不是有效的 JSON

我是 Mongo 的新手,正在尝试从集合中导出 JSON 文件。该> MONGOEXPORT运作良好并创建了一个JSON文件。

{ "_id" : { "$oid" : "54c8f3fb5e24e03c473243c4" }, "username" : "Aman", "password" : "yesboss" }
{ "_id" : { "$oid" : "54c901c1953b434dabadbabf" }, "username" : "AMAN2" }
Run Code Online (Sandbox Code Playgroud)

现在,JSONLint 向我显示它不是有效 JSON 的错误。

我需要将其导入到我的 Java 项目中以从中提取值。

json mongodb gson mongoexport

4
推荐指数
1
解决办法
1750
查看次数

标签 统计

mongodb ×10

mongoexport ×10

json ×2

bson ×1

dump ×1

export ×1

filter ×1

gson ×1