先说下表结构:书籍book,对应多个书籍目录
需求:通过book_id查询book的信息,并查询出书籍目录列表
book.schema.json
"properties": {
"_id": {
"description": "ID,系统自动生成"
},
"name": {
"bsonType": "string",
"description": "名称"
},
}
book-chapter.schema.json
"properties": {
"_id": {
"description": "ID,系统自动生成"
},
"book_id": {
"bsonType": "string",
"description": "书籍id",
"foreignKey": "book._id"
},
"name": {
"properties": "目录名称"
},
}
理想结果:
{
name:'xxxx',
chapter:[{
name:'xxxx}]
}
仅当book有数据时使用jql查询:
当book在前,bookChapter在后
const dbJQL = uniCloud.databaseForJQL()
const book = dbJQL.collection('book').where(`_id == '${book_id}'`).getTemp();
const bookChapter = dbJQL.collection('book-chapter').where(`book_id == '${book_id}'`).getTemp();
const res = await dbJQL.collection(book, bookChapter).get().catch(err => {
console.log(err)
});
return res
报错:FaasError: Database error
当bookChapter在前,book在后
const dbJQL = uniCloud.databaseForJQL()
const book = dbJQL.collection('book').where(`_id == '${book_id}'`).getTemp();
const bookChapter = dbJQL.collection('book-chapter').where(`book_id == '${book_id}'`).getTemp();
const res = await dbJQL.collection(book, bookChapter).get().catch(err => {
console.log(err)
});
return res
查询结果:data是[]
4***@qq.com (作者)
没有,希望得到解答
2025-01-09 14:53
DCloud_uniCloud_CRL
回复 4***@qq.com: dbJQL.collection(bookChapter, book) 这样呢
2025-01-09 18:08
4***@qq.com (作者)
回复 DCloud_uniCloud_CRL: 查询结果是空数组[]
2025-01-10 11:28
DCloud_uniCloud_CRL
回复 4***@qq.com: 方便的话添加我为协作者,我验证下这个问题,chenruilong@dcloud.io
2025-01-10 12:09
4***@qq.com (作者)
回复 DCloud_uniCloud_CRL: 代码仓库协作吗?这个加不了吖,方便见一个代码吗?很少的
2025-01-14 15:59
DCloud_uniCloud_CRL
回复 4***@qq.com: 不是代码仓库,服务空间的协作者。
2025-01-15 17:15
DCloud_uniCloud_CRL
回复 4***@qq.com: 或者你自己执行以下,把云函数的requestId发给我也行
2025-01-15 17:15