4***@qq.com
4***@qq.com
  • 发布:2025-01-07 17:30
  • 更新:2025-01-08 17:15
  • 阅读:108

JQL联表查询有误

分类:uniCloud

先说下表结构:书籍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是[]

2025-01-07 17:30 负责人:无 分享
已邀请:
DCloud_uniCloud_CRL

DCloud_uniCloud_CRL

现在好了吗?

  • 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

要回复问题请先登录注册

  • 标题 / 粗斜体
  • 代码片段
  • 超链接 / 图片 / 视频
  • 列表 / 引用

文章内容较多时,可以用标题分段 :

## 大标题 
### 小标题

斜体 / 粗体 :

**粗体** 
*斜体*
***粗斜体***

代码片段 :

``` javascript
代码片段
```

超链接 :

[链接文字](链接地址) 例: [百度](http://www.baidu.com)

图片 :

![图片说明](图片地址) 例: ![百度logo](http://www.baidu.com/img/bdlogo.gif)

视频 :

!![视频说明](视频地址) 例: !![优酷视频](http://youku.com)

有序列表 :

1. 123
2. 123
3. 123

无序列表 :

- 123
- 123
- 123

引用 : ( 双回车后结束引用 )

> 引用内容
引用内容
引用内容