
回复
通过cloudDatabase.DatabaseZone.query方法查询云数据库中满足条件的数据记录。
打开MyPestPage.ets文件
1.定义存储区、查询条件变量
agDBZone:cloudDatabase.DatabaseZone | undefined=undefined; // 云数据库存储区
condition:cloudDatabase.DatabaseQuery<cloudDatabase.DatabaseObject> | undefined=undefined; // 查询条件
2.初始化
aboutToAppear(): void {
// 初始化云数据库
this.agDBZone = cloudDatabase.zone('NMSS');
// 先查询首选项中的用户ID,用户手机号登录之后
this.getMyPest('18866668888');
}
3.获取我的病虫害诊断历史记录
/**
* 获取用户诊断历史记录
* @param userId 用户ID
*/
async getMyPest(userId:string):Promise<void>{
this.condition=new cloudDatabase.DatabaseQuery(Pest);
this.condition.equalTo('UserId',userId).orderByDesc('UpdateDate');
this.agDBZone?.query(this.condition)
.then(result =>{
let ps:Pest[] =result as Pest[];
ps.forEach((item:Pest)=>{
let pest:Pest =item as Pest;
let model:PestModel =new PestModel();
model.ID=pest.ID;
model.AGID=pest.AGID;
model.Type=pest.Type;
model.ImgUri=pest.Img;
model.PestName=pest.PestName;
model.PestCtrl=pest.PestCtrl;
this.myPests.push(model);
});
})
.catch((err:BusinessError)=>{
// 无任何操作
})
}
注意:数据记录的唯一性,根据当前登录的用户ID(手机号)。