Mongoose find 查询返回json数据处理方式(mongo查找)硬核推荐

随心笔谈9个月前发布 admin
229 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

该文章介绍了使用MongoDB的异步查询功能,提供了两个主要操作:查找和复制数据。首先,`findById`函数可以接受单个或多个id,通过`find`或`findById`方法查找对应的文档,并在异常情况下抛回内部服务器错误。其次,`copyDataModal`函数用于复制数据,它通过`findById`获取目标文档后,对属性进行数据掩码处理,然后创建新文档并返回。整个过程支持异步操作,提高了性能。


async findById(id: string | string[]) {
let res
try {
if (Array.isArray(id)) {
res=await this.dataModel.find({ _id: { $in: id } })
} else {
res=await this.dataModel.findById(id)
}
} catch (error) {
throw new HttpException(error, HttpStatus.INTERNAL_SERVER_ERROR)
}
return res;
}

async copyDataModal(dataModel: CopyDataModelDto) {
let res
try {
const { id }=dataModel
const modalData=await this.findById(id)
if (modalData) {
modalData.props=(modalData.props || []).map((ele: any)=> {
return dataMasking(ele, [‘_id’])
})
const addData=dataMasking({ …modalData, …dataModel }, [‘_id’, ‘id’, ‘__v’])
// res=await this.add(addData)
res=addData
}

} catch (error) {
throw new HttpException(error, HttpStatus.INTERNAL_SERVER_ERROR)
}
return res
}

© 版权声明

相关文章