command.or 查询报错是什么问题?
发布于 5 年前 作者 zhuguiying 7375 次浏览 来自 官方Issues
// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
});
const db = cloud.database();
const _=db.command;
exports.main = async (event, context) => {

  try {
    // return await db.collection('CATEGORY_FORM').where({
    //   // name:_.or(["测试一","测试二"])
    //   name: '测试一',
    // }).remove()
    await db.collection('CATEGORY_FORM').where({
      name:_.or(["测试一","测试二"])
      //name:_.or("测试一","测试二")
      // name: '测试一',
    }).get().then(res=>{
      return res
    })
  } catch(e) {
    console.error(e)
  }
};


需求是有一个分类表,表内每条记录有一个name属性,想要根据name属性删除指定的记录,

比如:删除name属性为测试一、测试二的记录,根据文档

https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/command/Command.or.html

说的前置写法,试了一下不管是删除还是查询操作,云函数都报错

Error: errCode: -502001 database request fail | errMsg: [FailedOperation.Query] (BadValue) $or/$and/$nor entries need to be full objects; 

注释部分不用or,匹配单个值的情况都是正常的

测试用的表结构如上图

另外,代码里的数据库语句直接在云平台数据库操作界面执行是正常的

回到顶部