1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- const { CloudQuery, CloudObject } = require("../lib/ncloud");
- const { UserProfileList, UserInputList,AIRecommendationList, PerferList } = require("./data");
- importData()
- DataMap = {
- UserProfile:{},
- UserInput:{},
- AIRecommendation:{},
- PerferList:{}
- }
- async function importData(){
- // 导入用户数据
- //let userProfileList = UserProfileList
- //for (let index = 0; index < userProfileList.length; index++) {
- //let userProfile = userProfileList[index];
- // userProfile = await importObject("UserProfile",userProfile)
- //}
- //导入用户输入数据
- // let userInputList = UserInputList
- // for (let index = 0; index < userInputList.length; index++) {
- // let userInput = userInputList[index];
- // userInput = await importObject("UserInput",userInput)
- // }
- //导入AI生成数据
- // let aiRecommendationList = AIRecommendationList
- // for (let index = 0; index < aiRecommendationList.length; index++) {
- // let aiRecommendation = aiRecommendationList[index];
- // aiRecommendation = await importObject("AIRecommendation",aiRecommendation)
- // }
- //导入偏好数据
- let perferList = PerferList
- for (let index = 0; index < perferList.length; index++) {
- let perfer = perferList[index];
- perfer = await importObject("Perfer",perfer)
- }
- console.log(DataMap)
- }
- 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()
-
- // 导入
- // 导入前批量处理Pointer类型数据,进行重定向
- Object.keys(data)?.forEach(key=>{
- let field = data[key]
- let srcId = field?.objectId
- if(srcId){ // 是数组字段
- if(key=="user"){
- data[key] = DataMap?.["UserProfile"]?.[srcId]?.toPointer();
- }
- if(key=="userInput"){
- data[key] = DataMap?.["UserInput"]?.[srcId]?.toPointer();
- }
- }
- })
- // 若未添加,则创建新对象并保存
- if(!importObj?.id){
- importObj = new CloudObject(className)
- }
- // 保存或更新数据
- data.srcId = srcId;
- importObj.set(data);
- importObj = await importObj.save();
- //DataMap[className][srcId] = importObj
- }
|