V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐工具
RoboMongo
推荐书目
50 Tips and Tricks for MongoDB Developers
Related Blogs
Snail in a Turtleneck
azur
V2EX  ›  MongoDB

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

  •  
  •   azur · 120 天前 · 970 次点击
    这是一个创建于 120 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    • 系统:win11 22000.100
    • mongo 版本:Community 版本,尝试了 3.4.7 、3.4.24 、3.6.23 (均为 windows zip 解压版)

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

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

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

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

    10 条回复    2021-08-20 11:10:06 +08:00
    smartbot
        1
    smartbot   120 天前
    数据库, 集合命名, 不应该默认使用 a-zA-Z:_- 字符集命名的吗?
    azur
        2
    azur   120 天前
    @smartbot 都是以前别人埋下的坑啊,只能尽量填。。。
    alsas
        3
    alsas   120 天前
    同用 DUMP 备份有中文的集合库会有这种问题 很坑
    Kinnice
        4
    Kinnice   119 天前 via Android
    改名导出
    azur
        5
    azur   119 天前
    @Kinnice 想过,但是文档比较多,而且似乎只有“作”这个汉字出问题
    smartbot
        6
    smartbot   119 天前
    dousha99
        7
    dousha99   119 天前
    「作」的 Unicode 是 0x4f5c; 而反斜杠的 Unicode 是 0x5c. 虽然按道理集合名称应该是用 UTF-8 之类编码的,但可能 mongodump 或者中间某个过程解码成字节流后就直接开始当 ASCII 处理了。在 Windows 环境下反斜杠是 path separator, 自然就会报错。

    顺带一提,由于 Windows 诞生于 Unicode 之前,所以 Windows 下的编码相关问题层出不穷。尽可能只用 [a-zA-Z0-9] 做名字有益身心健康。
    azur
        8
    azur   118 天前
    @dousha99 多谢大佬,确实是这个原因,试了下“瑜、牜、䩜、乜”也都不行
    sunhk25
        9
    sunhk25   103 天前
    @azur
    借问一下,Windows 下的 mongodump 连接慢吗。
    我这里很小的数据库连接和下载需要 8 秒,用 Pymongo 下载的话不到一秒,但是无法取得 meta 文件。
    azur
        10
    azur   103 天前
    @sunhk25 不慢的,本地还是远程呢
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1145 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 19:34 · PVG 03:34 · LAX 11:34 · JFK 14:34
    ♥ Do have faith in what you're doing.