帖子
帖子
用户
博客
课程
显示全部楼层
7
帖子
0
勋章
40
Y币

[云开发] 怎么对多个查询条件进行排除

[复制链接]
发表于 2021-5-3 20:05:03

云服务3.0中,通过api.ajax做查询,怎么对多个条件进行排除?比如以下查询,希望返回的结果status既不为"A"也不为"B",这样的条件应该怎么写?

api.ajax({
        url: '',
        method: 'get',
        headers: {
                'Content-Type': 'application/json;charset=utf-8'
        },  
        where: {
                "userId": userInfo.id,
                "status": 既不为"A"也不为"B"
        },
        order: {
                "created": -1   
        },         
        field: {

        }            
}, function(ret, err){
}

7
帖子
0
勋章
40
Y币
后端代码我知道怎么写了,

let where = req.body.where || {"status":{"nin":["A","B"]}};

那么,怎么从前端传过去? 即,前端怎么写?后端用哪个参数接受?
380
帖子
4
勋章
6
Y币
看api.ajax 接口文档

数据放data里传给后端
4
帖子
1
勋章
426
Y币
建议在ajax只传递值(k:v),逻辑在后端写
针对status:[a,b]
然后后端orm: where:{status:{nin: status }} 这样写
7
帖子
0
勋章
40
Y币
给后来者:

云函数中的参数直接从req获得,不必费心在云函数设计参数,参数都放到data中。
(这个一个大坑是,req是后端可以直接获取的,不需要出现在参数列表中;你费心定义在参数列表中的参数怎么都传不到后端)

如 req.body 对应 前端 api.ajax({ data: { body:{}}})

前端:
            data: {
                body: {
                    where: {
                        "userId": userInfo.id,
                        "status": {"nin": ["A", "B"]}
                        },
                    "order": "created desc"
                }
            }

后端:
                let order = req.body.order;
                let where = req.body.where;
您需要登录后才可以回帖 登录

本版积分规则