云数据库 db.collection(集合).where({}).get, 集合不能用变量吗?
问题一。代码如下,adcode 换成集合名称就可以用,使用前端传过来的adcode变量就不行
问题二。这样取数据貌似效率比较低,如何能提高获取数据的效率,根据集合的多个id 请求多条数据,请求大神解答一下
exports.main = async (event, context) => {
let adcode=event.adcode
for(var j=0, len=event.cartlist.length; j < len;j++){
try{
await db.collection(adcode).where({
_id:event.cartlist[j].goods_id
}).get().then(res=>{
cartlistdetail.push(res.data[0])
}).catch(err=>{})
}catch(err){
console.log(err)
}
}
return cartlistdetail
}
3 回复
exports.main = async (event, context) => {
let adcode = event.adcode, ids = []
if(!event.adcode || event.adcode.trim() == '') return { errMsg: '集合名未传'}
for(var j=0, len=event.cartlist.length; j < len;j++){
ids.push(event.cartlist[j].goods_id)
}
return ids.length ? db.collection(adcode).where({_id: _.in(ids)}).get() : []
}
若认为该回答有用,给回答者点个[ 有用 ],让答案帮助更多的人