import-data.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. const { CloudQuery, CloudObject } = require("../lib/ncloud");
  2. const { DepartList, DoctorList, HotDotList} = require("./data");
  3. inportDapartAndDoctor()
  4. DataMap = {
  5. Doctor:{},
  6. Department:{},
  7. HotDot:{},
  8. }
  9. async function inportDapartAndDoctor(){
  10. // // 导入科室数据
  11. // let departList = DepartList
  12. // for (let index = 0; index < departList.length; index++) {
  13. // let depart = departList[index];
  14. // depart = await importObject("Department",depart)
  15. // }
  16. // // 导入医生数据
  17. // let doctorList = DoctorList
  18. // for (let index = 0; index < doctorList.length; index++) {
  19. // let doctor = doctorList[index];
  20. // doctor = await importObject("Doctor",doctor)
  21. // }
  22. // 导入热点数据
  23. // let hotDotList = HotDotList
  24. // for (let index = 0; index < hotDotList.length; index++) {
  25. // let hotDot = hotDotList[index];
  26. // hotDot = await importObject("HotDot",hotDot)
  27. // }
  28. let query = new CloudQuery('HotDot');
  29. query.equalTo('category', 'HotDot');
  30. console.log(await query.find())
  31. // console.log(DataMap["Doctor"])
  32. }
  33. async function importObject(className,data){
  34. // 查重 srcId 数据源列表中的objectId并非数据库生成的唯一ID,因此需要有一个srcId字段进行记录,并查重
  35. let query = new CloudQuery(className)
  36. let srcId = data.objectId
  37. query.equalTo("srcId",srcId)
  38. let importObj = await query.first()
  39. console.log(importObj)
  40. // 导入
  41. // 导入前批量处理Pointer类型数据,进行重定向
  42. Object.keys(data)?.forEach(key=>{
  43. let field = data[key]
  44. let srcId = field?.objectId
  45. if(srcId){ // 是数组字段
  46. if(key=="depart"){
  47. data[key] = DataMap?.["Department"]?.[srcId]?.toPointer();
  48. }
  49. }
  50. })
  51. // 若未添加,则创建新对象并保存
  52. if(!importObj?.id){
  53. importObj = new CloudObject(className)
  54. }
  55. // 保存或更新数据
  56. data.srcId = srcId;
  57. importObj.set(data);
  58. importObj = await importObj.save();
  59. DataMap[className][srcId] = importObj
  60. }