Skip to content
鼓励作者:欢迎打赏犒劳

07-leancloud

leancloud数据导入和导出

leancloud很绝,从数据库导出的数据,导入报错,因为针对数据库字段有时间类型的话,你导出的是类似2024-08-10T14:26:49.630Z这种的, 但是数据库需要Date类型的,就报错,所以你需要写个脚本特殊处理下。

原格式

json
{
  "insertedAt": "2024-08-10T14:26:49.630Z",
  "objectId": "66b778a9e23f760c2fe61e3a"
}

转换后(正确的格式):

json
{
  "insertedAt": {
    "__type": "Date",
    "iso": "2024-08-10T14:26:49.630Z"
  },
  "objectId": "66b778a9e23f760c2fe61e3a"
}

js脚本

js
const fs = require('fs');

// 1. 读取导出的JSON文件
const rawData = fs.readFileSync('Comment_20250908_141112.json');
const dataArray = JSON.parse(rawData);

// 2. 遍历数组中的每一个对象(每一条数据)
dataArray.forEach(obj => {
    // 3. 对每一个需要转换的日期字段进行检查和转换
    const dateFields = ['createdAt', 'updatedAt', 'insertedAt'];

    dateFields.forEach(field => {
        if (obj[field] && typeof obj[field] === 'string') {
            // 将字符串字段转换为 LeanCloud 需要的 {__type: "Date", iso: <string>} 格式
            obj[field] = {
                "__type": "Date",
                "iso": obj[field]
            };
        }
    });
});

// 4. 将转换后的数据写入一个新的JSON文件
fs.writeFileSync('output_for_import.json', JSON.stringify(dataArray, null, 2));

console.log('转换完成!已生成 output_for_import.json 文件。请使用新文件进行导入。');

如有转载或 CV 的请标注本站原文地址