部署了admin,注册了一个管理帐号后,管理者注册按钮还是没有改变
通过查看代码,是 db.collection("uni-id-users").where({role:"admin"}).count(); 这个 jql查不出用户,应该如何修改
你是支付宝云吗?如果是支付宝云空间部署的, role这个字段需要加 array类型的索引
@qq370725567 是的,部署到支付宝云,在哪里加这个array类型的索引有代码示例不,
不过我修改另外一种判断方式:也处理了这个问题
async onLoad() {
// 查询是否已经有管理员注册了,如果有,则隐藏注册管理员的入口
try {
const db = uniCloud.database();
// let countRes = await db.collection("uni-id-users").where({role:"admin"}).count();
let countRes = await db.collection("uni-id-users").where(${new RegExp('admin', 'i')}.test(role)).count();
let count = countRes.result.total;
this.existAdmin = count > 0 ? true : false;
} catch(err){
this.existAdmin = false;
}
}
不建议这样做,这样你支付宝云后面还会有各种问题,支付宝云内置数据库要求,数组字段必须设置为 array 类型的索引才能被查询