database和databaseJQL 如何区分,什么情况下用哪个?感觉好混乱
有时候用database可以,有时又不可以,要换成databaseJQL 才行。在一个云对象里,有时又要两个一起用,真的混乱呀。谁能帮忙解惑下
database和databaseJQL 如何区分,什么情况下用哪个?感觉好混乱
有时候用database可以,有时又不可以,要换成databaseJQL 才行。在一个云对象里,有时又要两个一起用,真的混乱呀。谁能帮忙解惑下
最佳回复
uniCloud.database 是传统mogondb语法,schema 无效,因为mogondb压根没有schema,也没有JQL,JQL是官方在mogondb语法上进行的封装,schema 就是专门给JQL使用的。
至于前端操作数据库时,现在应该写成 uniCloud.databaseForJQL,不应该写成 uniCloud.database,因为前端只能执行JQL语句,不能执行传统mogondb语句(前端操作数据库不安全,必须用schema来限制权限)
那么为什么前端还有一个 uniCloud.database 写法,且也是受到schema限制的呢?
这是历史原因,一开始设计JQL的时候,只考虑给前端使用,当时前端是没有 uniCloud.database API的,因此用了 uniCloud.database 来做前端JQL的声明,但是问题来了,开发者会困扰,同样是 uniCloud.database,为什么云函数里不受schema限制,因此前端又多了一个新的API uniCloud.databaseForJQL
所以前端 uniCloud.database 的效果 = uniCloud.databaseForJQL,而云函数中 uniCloud.database 就是传统的mogondb语法,schema 无效
172617707 (作者)
谢谢你的回复,前端使用jql,但是inc这种要放到云对象中,对吧?后端中应该是使用uniCloud.database,但是如果要使用groupBy这种,就需要使用jql,然后在_before方法内进行设置 if (dbJql == null) {
dbJql = uniCloud.databaseForJQL({
clientInfo: this.getClientInfo()
})
} 这样理解是否正确?
2024-08-15 22:29
DCloud_uniCloud_VK
回复 172617707: jql能做到的, 传统mogondb语法(uniCloud.database方式一定也可以做到)
反之 传统mogondb语法能做到的, jql不一定可以做到
2024-08-16 11:22
DCloud_uniCloud_VK
这是分组文档 https://doc.dcloud.net.cn/uniCloud/cf-database-aggregate.html#aggregate-group
2024-08-16 11:23
172617707 (作者)
回复 DCloud_uniCloud_VK: 请问下,目前有uni-id有集成企业微信相关的吗?
2024-08-19 16:44
DCloud_uniCloud_VK
回复 172617707: 目前没有
2024-08-19 16:47