mongodump 遇到一个奇怪的问题,向各位大佬请教

2021-08-03 14:24:40 +08:00
 azur

工作的时候在用mongodump导出数据的时候发现一个奇怪的问题,环境如下:

在 docker 环境下一切正常,但是在 windows 环境下,如果集合名称中包含有“”这个中文字符,则使用mongodump导出会报错,报错内容如下:

contains a path separator '作' and can't be dumped to the filesystem

各位大佬如果有类似环境的,能够帮忙看下是否有同样的问题,还是我的导出命令或者设置有不对的地方

如果问题存在的话,有没有什么解决办法,多谢多谢

2399 次点击
所在节点    MongoDB
10 条回复
smartbot
2021-08-03 17:12:42 +08:00
数据库, 集合命名, 不应该默认使用 a-zA-Z:_- 字符集命名的吗?
azur
2021-08-03 17:43:46 +08:00
@smartbot 都是以前别人埋下的坑啊,只能尽量填。。。
alsas
2021-08-03 20:28:41 +08:00
同用 DUMP 备份有中文的集合库会有这种问题 很坑
Kinnice
2021-08-04 07:55:22 +08:00
改名导出
azur
2021-08-04 11:31:42 +08:00
@Kinnice 想过,但是文档比较多,而且似乎只有“作”这个汉字出问题
smartbot
2021-08-04 13:57:27 +08:00
dousha99
2021-08-04 22:16:26 +08:00
「作」的 Unicode 是 0x4f5c; 而反斜杠的 Unicode 是 0x5c. 虽然按道理集合名称应该是用 UTF-8 之类编码的,但可能 mongodump 或者中间某个过程解码成字节流后就直接开始当 ASCII 处理了。在 Windows 环境下反斜杠是 path separator, 自然就会报错。

顺带一提,由于 Windows 诞生于 Unicode 之前,所以 Windows 下的编码相关问题层出不穷。尽可能只用 [a-zA-Z0-9] 做名字有益身心健康。
azur
2021-08-05 10:33:07 +08:00
@dousha99 多谢大佬,确实是这个原因,试了下“瑜、牜、䩜、乜”也都不行
sunhk25
2021-08-20 09:02:17 +08:00
@azur
借问一下,Windows 下的 mongodump 连接慢吗。
我这里很小的数据库连接和下载需要 8 秒,用 Pymongo 下载的话不到一秒,但是无法取得 meta 文件。
azur
2021-08-20 11:10:06 +08:00
@sunhk25 不慢的,本地还是远程呢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/793379

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX