import-data.js 2.3 KB

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