- 当前 Bug 的表现(可附上截图)
- 预期表现
- 复现路径
- 提供一个最简复现 Demo
云开发提供了一个 JSON 数据库,两个集合 collection之间的关系如何处理?
例如:
集合 collection
books
集合存放了图书记录
[
{
_id: b001
auther_id: a001
}
]
authers 集合
[
{
_id: a001,
name: Tom
}
]
怎么样查
db.collection('books').where({
auther_id: 'a001'
}).get({
success: function(res) { // res.data 是包含以上定义的两条记录的数组 console.log(res.data) }})
如何得到结果让book里直接包含auther
[
{
_id: b001
auther: {
_id: a001,
name: Tom
}
}
]
为什么设计表的时候要单独分开图书表和作者表,做筛选的时候还要联表查询,仅仅靠查询语句还很麻烦,执行效率也不高。
一个作者写多本书,每本书的表里都放同一个作者的信息,这样信息重复。
如果要修改该作者的信息,每本书里的相同信息都要更新一遍,也是重复啊。
其实现在就是小程序端的数组操作消耗的资源,和数据表的信息冗余之间作取舍
冗余的信息如果要更新,消耗的资源也非常多啊
获得作者信息集合author_row
db.collection('books').where({ auther_id: author_row._id }).get({ success: function(res) {
这里res.data集合是查询到的结果
为了不混淆,图书作者集合定义为book_resuslt(数组类型)
book_result[_id]=res.data._id;
book_result[_author]=author_row; //book_result 是包含以上定义的两条记录的数组 console.log(book_result) }
})
大致思路就是这样,不知道能不能给你什么帮助
谢谢!