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'}}
获取不到结果
更多关于uni-app 联表查询没结果的实战教程也可以访问 https://www.itying.com/category-93-b0.html
6 回复
您好,chat_histroy是主表,我联表查询,user_id是关联是user-lib的_id,我要限制主表的state为1,附表user-lib中的role为‘seller’,以前限制子表条件不是可以用对象格式或者user_id._id的吗,但是我切换到阿里云就可以用
回复 1***@qq.com: 正常应该使用 user_id: 'id’查询
这个和云端node版本有关吗
没有关系。
从代码和截图来看,联表查询没有返回数据可能有以下几个原因:
- 关联字段类型不匹配。主表的user_id字段应该是字符串类型,而副表的_id是ObjectId类型,直接比较可能不匹配。可以尝试将条件改为:
user_id: "67bf8f06c61eecb71a2523a0"
-
数据结构问题。截图显示user-lib表中的_id字段是ObjectId,而chat_history表中的user_id字段是字符串。确保关联字段类型一致。
-
数据确实不存在。可以先单独查询主表确认数据是否存在:
mdb.collection('chat_history').where({
user_id: "67bf8f06c61eecb71a2523a0"
}).get()
- 联表查询语法问题。可以尝试使用更简洁的联表查询方式:
mdb.collection('chat_history')
.where({
'user_id._id': "67bf8f06c61eecb71a2523a0"
})
.get()