| 
					
				 | 
			
			
				@@ -1,27 +1,58 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const { CloudQuery, CloudObject } = require("../lib/ncloud"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// testCRUD() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-testQuery() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-async function testQuery(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    let query = new CloudQuery("Doctor") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // query.equalTo("gender","女") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    query.greaterThanAndEqualTo("age",40) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    query.lessThan("age",41) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    let list = await query.find(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    console.log(list) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const { DepartList, DoctorList } = require("./data"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+inportDapartAndDoctor() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+DataMap = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Doctor:{}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Department:{} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+async function inportDapartAndDoctor(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 导入科室数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let departList = DepartList 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    for (let index = 0; index < departList.length; index++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let depart = departList[index]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        depart = await importObject("Department",depart) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 导入医生数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let doctorList = DoctorList 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    for (let index = 0; index < doctorList.length; index++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let doctor = doctorList[index]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        doctor = await importObject("Doctor",doctor) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // console.log(DataMap["Doctor"]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-async function testCRUD(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 基本的增删查改测试 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    let query = new CloudQuery("Doctor") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    let doctorList = await query.find(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    console.log("doctorList count",doctorList?.length) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+async function importObject(className,data){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    let newDoctor = new CloudObject("Doctor") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    newDoctor.set({"name":"123"}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    newDoctor = await newDoctor.save(newDoctor) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    console.log("newDoctor",newDoctor) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 查重 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) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    await newDoctor.destory() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    console.log("newDoctor 已删除",newDoctor) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 导入 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 导入前批量处理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 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |