uni-app 联表查询没结果

uni-app 联表查询没结果

示例代码:

u = mdb.collection('user-lib').getTemp()  
//联表能查询  
c = mdb.collection('chat_history',u).where({  
    user_id:{  
        _id: "67bf8f06c61eecb71a2523a0"   
    }  
}).get().then(res=>{  
    console.log(11122211,res.result.data)  
}) 

操作步骤:

  • 每次查询

预期结果:

  • 有数据

实际结果:

  • 灭有数据

bug描述:

关于联表查询的时候加联表条件返回空数据,副表是新建的user-lib,主表user_id关联user-lib里的_id,联表查询的时候条件写{user_id{_id:'xxxxxx'}}获取不到结果

Image Image Image Image Image Image Image


更多关于uni-app 联表查询没结果的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

user_id 类型是字符串,你查询的时候是对象

更多关于uni-app 联表查询没结果的实战教程也可以访问 https://www.itying.com/category-93-b0.html


您好,chat_histroy是主表,我联表查询,user_id是关联是user-lib的_id,我要限制主表的state为1,附表user-lib中的role为‘seller’,以前限制子表条件不是可以用对象格式或者user_id._id的吗,但是我切换到阿里云就可以用

回复 1***@qq.com: 正常应该使用 user_id: 'id’查询

这个和云端node版本有关吗

没有关系。

从代码和截图来看,联表查询没有返回数据可能有以下几个原因:

  1. 关联字段类型不匹配。主表的user_id字段应该是字符串类型,而副表的_id是ObjectId类型,直接比较可能不匹配。可以尝试将条件改为:
user_id: "67bf8f06c61eecb71a2523a0"
  1. 数据结构问题。截图显示user-lib表中的_id字段是ObjectId,而chat_history表中的user_id字段是字符串。确保关联字段类型一致。

  2. 数据确实不存在。可以先单独查询主表确认数据是否存在:

mdb.collection('chat_history').where({
  user_id: "67bf8f06c61eecb71a2523a0"
}).get()
  1. 联表查询语法问题。可以尝试使用更简洁的联表查询方式:
mdb.collection('chat_history')
  .where({
    'user_id._id': "67bf8f06c61eecb71a2523a0"
  })
  .get()
回到顶部