在云对象中有下面的代码
const db = uniCloud.database();
module.exports = {
_before: function() { // 通用预处理器
this.startTime = Date.now()
this.params = this.getParams()
},
async getResourceFile() {
const res = await db.collection('tb_material')
.where({
position: 1
})
.field("_id,title")
.get()
return {
errCode: 0,
errMsg: "查询成功",
data: res.data
}
}
}
正常的从数据库查询数据 报错 TypeError: Cannot assign to read only property '0' of string '_id,title'
const res = await db.collection('tb_material')
.where({
position: 1
})
.get()
如果不添加 field字段,代码可以正常执行 这是为什么啊 找了好长时间的问题了
1 个回复
DCloud_uniCloud_VK
.field("_id,title")
这种写法是JQL语法,在云函数中声明JQL的db对象需要uniCloud.databaseForJQL
这个API 文档: https://doc.dcloud.net.cn/uniCloud/jql-cloud.htmluniCloud.database
这个API得到的db对象是非JQL对象, 文档: https://doc.dcloud.net.cn/uniCloud/cf-database.html