123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- const { CloudQuery, CloudObject } = require("../ncloud");
- const { UserList, PlanList, CoachList } = require("./data");
- inportDapartAndDoctor()
- DataMap = {
- fitUser: {},
- fitPlan: {},
- Coach: {}
- }
- async function inportDapartAndDoctor() {
- // 导入科室数据
- let departList = CoachList
- for (let index = 0; index < departList.length; index++) {
- let depart = departList[index];
- depart = await importObject("Coach", depart)
- }
- // 导入医生数据
- // let doctorList = PlanList
- // for (let index = 0; index < doctorList.length; index++) {
- // let doctor = doctorList[index];
- // doctor = await importObject("fitPlan", doctor)
- // }
- // console.log(DataMap["Doctor"])
- }
- async function importObject(className, data) {
- // 查重 srcId 数据源列表中的objectId并非数据库生成的唯一ID,因此需要有一个srcId字段进行记录,并查重
- let query = new CloudQuery(className)
- let srcId = data.objectId
- query.equalTo("srcId", srcId)
- let importObj = await query.first()
- console.log(importObj)
- // 导入
- // 导入前批量处理Pointer类型数据,进行重定向
- Object.keys(data)?.forEach(key => {
- let field = data[key]
- let srcId = field?.objectId
- if (srcId) { // 是数组字段
- if (key == "depart") {
- data[key] = DataMap?.["Department"]?.[srcId]?.toPointer();
- }
- }
- })
- // 若未添加,则创建新对象并保存
- if (!importObj?.id) {
- importObj = new CloudObject(className)
- }
- // 保存或更新数据
- data.srcId = srcId;
- importObj.set(data);
- importObj = await importObj.save();
- DataMap[className][srcId] = importObj
- }
|