import-data.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. const { CloudQuery, CloudObject } = require("../lib/ncloud");
  2. const { ChatPartnerList, ChatRecordList } = require("./data");
  3. DataMap = {
  4. ChatPartner:{},
  5. ChatRecord:{},
  6. };
  7. // 查询
  8. //async function testQuery(){
  9. //let query = new CloudQuery("ChatPartner")
  10. //query.greaterThanAndEqualTo("",)查询条件
  11. //query.lessThan("",)查询条件
  12. //let list = await query.find();
  13. //console.log(list)
  14. //}
  15. //testCRUD()// 测试ChatPartner表的查询
  16. // 增删改查
  17. //async function testCRUD(){
  18. //let query = new CloudQuery("ChatPartner")
  19. //let chatpartnerList = await query.find();
  20. //console.log("chatpartnerList count",chatpartnerList?.length)
  21. //let newChatPartner = new CloudObject("ChatPartner")
  22. //newChatPartner.set({"name":"123"})
  23. //newChatPartner = await newChatPartner.save(newChatPartner)
  24. //console.log("newChatPartner",newChatPartner)
  25. //await newChatPartner.destory()
  26. //console.log("newChatPartner 已删除",newChatPartner)
  27. //}
  28. //testQuery()// ChatPartner表基本的增删查改测试
  29. async function inportDapartAndChatPartner(){
  30. // 导入陪聊师数据
  31. let chatpartnerList = ChatPartnerList
  32. for(let index = 0;index < chatpartnerList.length;index++){
  33. let chatpartner = chatpartnerList[index];
  34. chatpartner = await importObject("ChatPartner",chatpartner)
  35. }
  36. // 导入聊天记录数据
  37. let chatrecordList = ChatRecordList
  38. for(let index = 0;index < chatrecordList.length;index++){
  39. let chatrecord = chatrecordList[index];
  40. chatrecord = await importObject("ChatRecord",chatrecord)
  41. }
  42. console.log(DataMap)
  43. }
  44. inportDapartAndChatPartner()
  45. async function importObject(className,data){
  46. // 查看 srcId 数据源列表中的objectId并非数据库生成的唯一ID,因此需要有一个srcId字段进行记录,并查重
  47. let query = new CloudQuery(className)
  48. let srcId = data.objectId
  49. query.equalTo("srcId",srcId)
  50. let importObj = await query.first()
  51. // 导入 新对象需要添加
  52. // 导入前批量处理Pointer类型数据,进行重定向
  53. Object.keys(data)?.forEach(key=>{
  54. let field = data[key];
  55. let srcId = field?.objectId;
  56. if(srcId){ // 数组字段
  57. if(key=="chatpartner"){
  58. data[key] = DataMap["ChatPartner"]?.[srcId]?.toPointer();
  59. }
  60. }
  61. });
  62. // 新对象需要添加
  63. if(!importObj?.id){
  64. importObj = new CloudObject(className)
  65. }
  66. //保存或更新数据
  67. data.srcId = srcId;
  68. importObj.set(data);
  69. importObj = await importObj.save();
  70. DataMap[className][srcId] = importObj
  71. }