卖火柴的咖啡猫
卖火柴的咖啡猫
  • 发布:2023-07-29 17:36
  • 更新:2023-08-02 09:44
  • 阅读:336

schema联表查询opendb-mall-goods(副表)和uni-pay-orders(主表)联表查询,获取不到副表内容

分类:uniCloud

opendb-mall-goods(副表)和uni-pay-orders(主表)联表查询,获取不到副表内容,单独查询都能获取到内容
主副表如果调换顺序
const res = await db.collection(ordergoods,orders).get()
则只出现opendb-mall-goods的内容,uni-pay-orders表内容为空,见图

查询代码  
const orders = db.collection('uni-pay-orders').where(`user_id==$cloudEnv_uid`).field('status,goods_id').getTemp()  
const ordergoods = db.collection('opendb-mall-goods').where(`userid==$cloudEnv_uid`).field('_id,totalPrice,skuList').getTemp()  
const res = await db.collection(orders,ordergoods).get()  

uni-pay-orders(主表)部分必要信息  

"permission": {  
        "read": true,  
        "create": true,  
        "update": false,  
        "delete": false  
    },  
"user_id": {  
            "title": "用户ID",  
            "bsonType": "string",  
            "description": "用户id,参考uni-id-users表",  
            "foreignKey": "uni-id-users._id",  
            "forceDefaultValue":{  
                            "$env":"uid"  
                        }  
        },  
        "goods_id":{         //关联opendb-mall-goods表  
            "title": "订单id",  
            "bsonType": "string",  
            "description": "订单id,参考opendb-mall-goods表",  
            "foreignKey": "opendb-mall-goods._id",  
            "forceDefaultValue":{  
                            "$env":"opendb-mall-goods._id"  
                        }  
        },  

opendb-mall-goods(副表)部分必要信息  

"permission": {  
        "read": true,  
        "create": true,  
        "update": true,  
        "delete": false,  
        "count": false // 禁止查询数据条数(admin权限用户不受限),  
    },  
"userid": {  
            "bsonType": "string",  
            "description": "用户ID, 参考`uni-id-users` 表",  
            "foreignKey": "uni-id-users._id",  
            "forceDefaultValue": {  
              "$env": "uid"  
            }  
          },  
        "name": {  
            "bsonType": "string",  
            "description": "一级分类",  
            "title": "一级分类",  
            "trim": "both"  
        },


主副表调换顺序结果

2023-07-29 17:36 负责人:无 分享
已邀请:
hhyang

hhyang - 如有问题,请添加QQ1606726660 备注付费咨询

换个查询方式呢?

卖火柴的咖啡猫

卖火柴的咖啡猫 (作者)

换什么方式?

  • hhyang

    用云jql,不要用前端jql 如果不懂 需要远程请联系我帮你解决

    2023-07-29 18:44

  • 卖火柴的咖啡猫 (作者)

    回复 hhyang: 用云函数试了下并没区别,一样的

    2023-07-29 20:18

  • hhyang

    回复 1***@qq.com: 叫你换个写法百分百没问题

    2023-07-29 20:39

  • 卖火柴的咖啡猫 (作者)

    回复 hhyang: 你是说这样吗?我用虚拟表临时表的方式都写了,云端,本地云函数都测试了结果都是一样的


    exports.main = async (event, context) => {

    //event为客户端上传的参数

    console.log('event : ', event)

    const dbJQL = uniCloud.databaseForJQL({ // 获取JQL database引用,此处需要传入云函数的event和context,必传

    event,

    context

    })

    const orders = dbJQL.collection('uni-pay-orders').where(user_id==$cloudEnv_uid).field('status,goods_id')

    .getTemp()

    // const ordergoods = dbJQL.collection('opendb-mall-goods').where(userid==$cloudEnv_uid).field(

    // '_id,totalPrice,skuList').getTemp()

    const res = await dbJQL.collection(orders,'opendb-mall-goods').get()

    //返回数据给客户端

    return {res}

    }

    2023-07-30 10:13

  • hhyang

    回复 1***@qq.com:不是 不要用jql

    2023-07-30 10:31

  • 卖火柴的咖啡猫 (作者)

    回复 hhyang: 啊,那着岂不是算bug了,放着好好的jql查不出来

    2023-07-30 10:53

s***@qq.com

s***@qq.com - 439

昨天也遇到个联表查询为空的问题,后来解决了,说一下我的问题:
// 主表foreignKey字段如下,关联副表M-school-markers-info表的_id
"marker_info_id": {
"bsonType": "string",
"description": "更多标记点信息",
"foreignKey": "M-school-markers-info._id"
},
问题出在副表的_id字段,副表_id字段在云数据库中看起来就是一串字符串,与主表相应marker_info_id字段完全一致,我的副表数据是通过json文件导入,而json文件的来源是从另一个云空间中导出的,导出的数据中_id字段其实是个对象,形式如下:
{"_id":{"$oid":"64c912d44e7f302061e7945f"},......}
导入云数据库中看着其实就是字符串,但联表查询一直为空,后来我把数据导出,把_id字段改成:{"_id":"64c912d44e7f302061e7945f",......} 后查询导入,联表查询就有数据了

要回复问题请先登录注册