# 微信云开发数据库导入

mongodb 数据如何导入到腾讯云开发数据库中

微信云开发提供了数据库,操作语法类似 mongodb , 有时需要把 mongodb 的数据导入云开发数据库,会提示操作失败,原因为 mongodb 导出的比如 json 文件和云开发所需的文件不一致,如果想成功导入我们需要进行格式修改。

比如云开发数据库导出的内容:

{"_id":"81206f415ee47c4b000189d470b597de","description":"国花","title":"郁金香","type":"plant"}
{"_id":"9abbc6f45ef6b131000489ae50de3bc1","description":"草本植物","title":"鹤望兰","type":"plant"}

mongodb 导出的内容:

[
  {
    "_id": "81206f415ee47c4b000189d470b597de",
    "description": "国花",
    "title": "郁金香",
    "type": "plant"
  },
  {
    "_id": "9abbc6f45ef6b131000489ae50de3bc1",
    "description": "草本植物",
    "title": "鹤望兰",
    "type": "plant"
  }
]

两者的差一点:

  1. 云开发数据每条数据为一行,mongodb 数据每个属性为一行;
  2. 云开发数据库每条数据单独一行,mongodb 数据会多包裹一层;
  3. mongodb 导出的数据有时会进行 " 转义;

知道了差一点,把差异之处消除即可把 mongodb 导出的数据完美的导入云开发数据库中。

下面是一段 python 写的格式转换代码,其它语言操作基本类似:

import json


# 读取 JSON 数据
with open(r'D:\plant\test1.json', 'r', encoding='utf-8') as f:
    jsons = json.load(f)

# 将 JSON 数组转换成字符串
result_str = ''
for item in jsons:
    # 遍历每个字段并处理嵌套的字符串
    for key, value in item.items():
        if isinstance(value, str):
            # 尝试解析嵌套的 JSON 字符串,移除转义字符
            try:
                item[key] = json.loads(value)
            except json.JSONDecodeError:
                pass  # 如果无法解析,则保留原始值

    # 必须使用 \n 换行区别每个记录
    result_str += json.dumps(item, ensure_ascii=False) + "\n"

# 保存到本地
with open(r'D:\plant\test2.json', 'w', encoding='utf-8') as f:
    f.write(result_str)
上次更新: 2025/1/17