文档一对一关系
一个人有一张身份证。
内嵌式结构:
db.person.insert({ name:'zs', age:'18', card:{ num:'420626200002023556', date: 88 } }) db.person.find({name:'zs'})
优势
一次查询就能得到所有数据
劣势
如果数据比较复杂, 不方便管理和更新
应用场景
数据不复杂 / 查询频率较高数据
规范式结构
db.card.insert({ _id: 123, num:'420626200002023556', date: '2022-12-08', userId: 456 }) db.person.insert({ _id: 456, name:'zs', age:'18', cardId: 123 }) db.person.aggregate([ {$lookup:{ from: 'card', localField: 'cardId', foreignField: '_id', as: 'card' }} ])
优势
如果数据比较复杂, 也方便管理和更新
劣势
查询数据相对内嵌结果稍微有点复杂
应用场景
数据比较复杂 / 更新频率较高数据