久久伊人一区二区三区四区-久久伊人影视-久久伊人影院-久久伊人中文字幕-亚洲成在人色婷婷-亚洲大成色www永久网

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 使用mongoose做多集合關聯查詢

使用mongoose做多集合關聯查詢

來源:千鋒教育
發布人:wjy
時間: 2022-06-06 11:21:00 1654485660

  在使用node開發后端項目的時候,通常會選擇mongodb作為數據庫,而使用mongodb通常是選擇mongoose作為操作mongodb的驅動。

使用mongoose做多集合關聯查詢

  首先我們知道mongodb是非關系型的的數據庫,也就是說保存的每行數據的字段都可以不一樣、不統一,我們以一個簡單博客系統的數據為例,涉及到的數據信息可能會有用戶、文章、留言。

小明發一篇文章, 那么小明的數據如下:

```js
{
 name:'小明',
 articles:[
  {
   content:'這是一篇文章內容'
  }
 ]
}
```

兩篇文章:

```js
{
 name:'小明',
 articles:[
  {
   content:'這是一篇文章內容'
  },
  {
   content:'這是第二篇文章的內容'
  }
 ]
}
```

還有每篇文章都可能有留言的,例如小紅給小明的文章留言,那么數據就會如下:

```js
{
 name:'小明',
 articles:[
  {
   content:'這是一篇文章內容',
   msgs:[
    {
     name:'小紅',
     content:'小紅給小明的留言'
    }
   ]
  },
  {
   content:'這是第二篇文章的內容',
   msgs:[
    {
     name:'小紅',
     content:'小紅給小明第二篇文章的留言'
    }
   ]
  }
 ]
}
```

小王也給小明的文章留言,那么數據如下:

```js
{
 name:'小明',
 articles:[
  {
   content:'這是一篇文章內容',
   msgs:[
    {
     name:'小紅',
     content:'小紅給小明的留言'
    },
    {
     name:'小王',
     content:'小王給小明的留言!!'
    }
   ]
  },
  {
   content:'這是第二篇文章的內容',
   msgs:[
    {
     name:'小紅',
     content:'小紅給小明第二篇文章的留言'
    },
    {
     name:'小王',
     content:'小王小明第二篇文章的留言!!'
    }
   ]
  }
 ]
}
```

問題來了,因為文章信息、留言信息都是保存在用戶的信息下,如果某個用戶的信息修改了,那么都需要遍歷其他的用戶的數據去做修改,如:小紅的信息修改了,那么也需要去小明的文章下找到小紅的信息去修改。 或者需要修改文章也需要通過用戶的信息去修改。 這樣就比較麻煩了,也不高效。

于是就有了數據庫關系查詢,mongodb也是最像關系型數據庫的非關系型數據庫,就是讓他們的相同類別數據存在同一個集合(表)中, 讓行內的某個字段做集合與集合之間的對應關系,通常是用id作為集合之間的映射關系。

我們直接使用mongoose操作mongodb:

首先準備三個集合(表)

users 存放用戶信息

articles 存放文章信息,每篇文章都屬于某個用戶(用user字段和users的_id字段做關聯)

msgs : 存放留言信息,每條留言都屬于某個用戶,每條留言也屬于某篇文章(用user字段和users的*id字段做關聯, 用article字段和articles的*id做關聯)

關系如下圖:

使用mongoose做多集合關聯查詢

對應的Scheme (_id字段在保存數據的時候會自動添加,所以我們不用定義)

userModel.js

```js
const mongoose = require('./db');
const schema = mongoose.Schema({
 username:String,
 password: String 
},{collection:'users'})

const model = mongoose.model('users',schema)
module.exports = model;
```

articleModel.js

```js
const mongoose = require('./db');
const schema = mongoose.Schema({
 title: String,
 content: String,
 user: {type: mongoose.Schema.Types.ObjectId, ref:'users'}
},{collection:'articles'})

const model = mongoose.model('articles',schema)
module.exports = model;
```

msgModel.js

```js
const mongoose = require('./db');
const schema = mongoose.Schema({
 content: String,
 user: {type: mongoose.Schema.Types.ObjectId, ref:'users'},
 article: {type: mongoose.Schema.Types.ObjectId, ref:'articles'},
},{collection:'msgs'})

const model = mongoose.model('msgs',schema)
module.exports = model;
```

## 關聯查詢(一對一)

1.查詢文章對應查詢文章的用戶信息

使用populate方法填充方法

參數1: 需要查詢的關聯字段

參數2: 關聯查詢出來的信息需要顯示字段

```js
articleModel.find().populate('user','username avatar').exec(function(err,as){
 console.log(as)
})
```

這樣查詢出來的文章信息都帶有用戶信息,而不是只有一個用戶id

## 關聯查詢(一對多)

想要查詢文章,然后查詢出關于這篇的所有留言

### 1.聚合查詢方式:

在這里的話,需要用到聚合查詢,查詢方式如下

```js
// 多集合關聯查詢
articleModel.aggregate([
 {
  $lookup:{
   from:'msgs',  // 關聯的集合
   localField:'_id',  // 本地關聯的字段
   foreignField:'article',  // 對方集合關聯的字段
   as:'mms',  // 結果字段名,
  },
 }
],(err,dds)=>{
 console.log(dds)
})
```

使用aggregate()方法就可以使用聚合查詢了,方法接收一個數組參數

$lookup是關聯查詢的意思,就像SQL中的join

### 2.虛擬字段查詢方式

在articleModel.js 中添加如下代碼

```js
schema.virtual('mms',{ // 參數1為加的虛擬字段名稱
 ref:'msgs', //關聯查詢的集合
 localField: '_id',  // 當前集合和對方集合關聯的字段
  foreignField: 'article',  // 對方集合字段和本集合關聯的字段
  count: true   // count是否只顯示總條數;  true為顯示,   false為不顯示
})

// 下面這兩句只有加上了, 虛擬字段才可以顯性的看到,不然只能隱性使用
schema.set('toObject',{virtuals:true})
schema.set('toJSON',{virtuals:true})
```

virtual 方法是給schema添加虛擬字段,

參數1 : 虛擬字段的名稱

參數2: 虛擬字段的配置

然后通過populate查詢

```js
articleModel.find().populate('mms').exec((err,as)=>{
 console.log(as)
})
```

這樣查詢出來的文章列表就有個mms字段了,這個字段對應的這篇文章的留言總數

以上就是使用mongoose 做多集合關聯查詢的方法。

## 總結

一對一關系的集合可以通過populate填充查詢。

一對多關系的集合可以通過聚合和虛擬字段進行查詢

更多關于web培訓的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓服務經驗,采用全程面授高品質、高體驗培養模式,擁有國內一體化教學管理及學員服務,助力更多學員實現高薪夢想。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 国产精品亚洲专区无码破解版 | 欧美乱强伦XXXXXXXXXX| 狠狠躁天天躁中文字幕 | 亲孑伦一区二区三区| 丰满爆乳在线播放| 亚洲AV无码国产精品色| 男人进入女人下部图| 高清拍拍拍无挡国产精品| 草莓丝瓜榴莲绿巨人WWW| 五十老熟妇乱子伦免费观看| 猫咪AV最新永久网址无码| А√天堂资源地址在线下载| 欧美黑人一级二级巨大久久天堂| 粉嫩av.一区二区三区免费| 亚洲AV自慰白浆喷水网站少妇| 全免费A级毛片免费看视频| 你的奶好大让老子摸摸的说说| 国产又猛又黄又爽| 日韩精品一区二区三区影院| 亚洲精品日韩AV专区| 国产丰满大屁股XXXX| 高清FREESEXMOVIES性TV出水| 内地丰满浓密老熟女露脸对白| 无码少妇一区二区| 国内偷自第一区二区三区| 中文字幕人妻无码系列第三区| 欧美人与动牲交片免费| 少妇被躁爽到高潮无码| 无码人妻精品一区二区三区免费看| 精品亚洲国产成人AV在线小说| 色狠狠一区二区三区香蕉| 亚洲无码成人av| 在图书馆揉捏她的双乳| 粉嫩少妇内射浓精VIDEOS| 精品九九人人做人人爱| 国产精品美女久久久| 国产精品成人永久在线四虎| 波多野结衣AV一区二区三区中文| 丰满的女房东6剧情| 亚洲AV永久无码精品秋霞电影秋| 亚洲AV自慰白浆喷水网站少妇| 国产成人精品综合久久久| 自拍偷自拍亚洲精品情侣| 我和子发生了性关系视频| 农里粗汉的共妻嗯啊高H| 成人无码区免费AⅤ片| 一区三区四区产品乱码| 久久成人A毛片免费观看网站| 从厨房一路干到卧室好吗| 亚洲AV无码国产精品色午友情链 | 人妻系列无码专区久久五月天| 秋霞久久国产精品电影院| 国产精品一区二区AV| 欧美亚洲国产SUV| 少妇自慰喷AV免费网站| 高清偷自拍亚洲精品三区| 精品卡一卡二卡3卡高清乱码| 在线精品亚洲一区二区| 久久国产精久久精产国| 极品少妇被猛得白浆直流草莓| 琪琪无码午夜伦埋影院| 狠狠婷婷色五月中文字幕| 久久99精品久久久久婷婷| 久久成人A毛片免费观看网站| 久久精品国产亚洲AV香蕉 | 宝贝儿感受到它对你的爱了吗小说 | 熟妇人妻AV无码一区二区三区| 儿子比老公更大更硬朗| 上面一边亲下一边面膜使用方法| 欧美精品亚洲日韩AⅤ| 国产高清自产拍AV在线| 少妇被躁C至高潮HD| 国产精品国产三级国产AⅤ| 中文人妻熟妇乱又伦精品| 男人一边吃奶一边弄下边好爽| 激情偷乱人伦小说视频在线 | 欧美一进一出抽搐大尺度视频| 欧洲免费无线码在线一区| 国产极品粉嫩馒头一线天AV| 人妻精油按摩BD高清中文字幕| 国产精品人人做人人爽| 久久精品欧美日韩精品 | 久久精品亚洲男人的天堂| 在图书馆揉捏她的双乳| 大乱东京道一本热大交乱| 国产在线视频一区二区三区| 韩国三级中文字幕HD| 久久6久久66热这里只是精品| 亚洲 熟 图片 小说 乱 妇| 成年免费手机毛片免费看无码| 国产在线无码视频一区二区三区| 免费看成人AV片| 国产亚洲一区二区手机在线观看| 国产又大又黑又粗免费视频| 成年美女黄网站色大片免费看| 中国孕妇变态孕交XXXX| 无码专区人妻系列日韩| 日韩不卡手机视频在线观看| 蜜芽AV在线新地址| 波多野结衣AV高清一区二区三区| 小诗的公交车日记免费读| 男女啪啪摸下面喷水网站| 国产成人啪精品视频网站午夜| 岳打开双腿开始配合交换| 欧美黑大粗无码免费视频| 成人无码区免费∨| 久久久久久精品免费不卡| 在线播放亚洲第一字幕| 城中村快餐嫖老妇对白| 和朋友换娶妻野外夫妇3| 污污污污污污网站| 又粗又大又硬又爽的少妇毛片| 精品日产A一卡2卡三卡4卡乱| 无套内谢孕妇毛片免费看| 丰满乳乱亲伦小说| 高清FREESEXMOVIES性TV出水| 欧美性猛交乱大交3| 午夜无码伦费影视在线观看| 亚洲人女屁股眼HD| 亚洲 日韩 欧美 成人 在线| 亚洲综合色区另类小说| 野花香电视剧全集免费观看| 成为人视频人的APP有哪些软件| 国产丰满大屁股XXXX| 恶毒美人长批后被宿敌爆炒了| 国产亚洲午夜高清国产拍精品| 精品无码人妻一区二区三区四| 免费女性裸体啪啪无遮挡网站| 欧美疯狂性受XXXXX喷水| 久久久久久精品免费免费WEⅠ| 欧美私人家庭影院| 在线看片无码永久免费视频| 久久人妻无码一区二区三区AV | 国产成人无码A区视频在线观看| 精品日产一区二区三区| 在线精品亚洲一区二区| 国产成人亚洲精品| 猫咪AV最新永久网址无码| 小浪货水多奶大被领导| 制服 丝袜 有码 无码 中文| 国产成人精品久久综合| 九月婷婷亚洲综合成人| 久久久久久精品免费免费自慰| 色狠狠色狠狠综合天天| 人妻被黑人与白人巨大中出| 无码人妻丰满熟妇区五十路百度| 波多野结衣AV高清中文| 中文无码乱人伦中文视频播放 | 女人和拘做受全过程免费| 从厨房到餐桌JOYCE| 国产国产精品人在线观看| 国内AI明星造梦鞠婧祎MV| 国产成人精品午夜福利| 成人无码区免费AⅤ片WWW软件 | 少妇人妻精品一区二区三区| 亚洲AV无码国产一区二区三区| 亚洲AV永久中文无码精品综合| 草草最新发地布地址①·| 国产裸体XXXX视频在线播放| W永久939W乳液78| 欧美〇〇无码黑人大战野结衣| 国产精品一卡二卡三卡四卡| 岳丰满多毛的大隂户老太的介绍| 忍着娇喘在公面前被夜袭| 国产成人精品自在钱拍| 人妻夜夜添夜夜无码AV| 余生请多指教在线观看免费全集| 欧美亚洲一区二区三区| 无线乱码A区B区C区| 国内精品久久久久精免费| 西西人体444WWW高清大胆| 免费无码成人AV在线播| 小拗女一区二区三区| 道德沦丧一家3口小说| 国模无码人体一区二区| 久久成人A毛片免费观看网站| 少妇自慰喷AV免费网站| 我的大胸继拇在线观看| 天天大片天天看大片| 永久免费的啪啪免费网址| 高清人人天天夜夜曰狠狠狠狠| 欧美黑人男士和白人美女a级黄片视频在线播放 | 无遮挡又爽又刺激的视频| 国产精品亚洲综合色区韩国| 国产精品无码无卡在线观看久| 男人GAY自慰吞精网站| 玩弄放荡人妻一区二区三| 亚洲 日韩 欧美 成人 在线| 亚洲色成人一区二区三区小说| W永久939W乳液78| 香蕉97超级碰碰碰视频| 日韩一区无码视频| 男女乱婬免费视频黑人| 宝贝对着镜子CAO好不好| 成码无人AV片在线电影无下载| 中文字幕无码中文字幕有码A| 亚洲AV午夜福利精品一区二区 | 久久久久国产一区二区| 国产亚洲精品线观看K频道| 一本大道东京热无码AV| 久久久久久久精品国产免费…| 国产亚洲一区二区手机在线观看 | 和朋友换娶妻野外夫妇3| 国产一区二区三区精品视频| 亚洲AV无码精品无码麻豆| 国产一区二区精品丝袜| 男人扒开女人的腿做爽爽视频| 亚洲精品乱码久久久久久按摩| 日韩精品人妻中文字幕有码| 亚洲已满18点击进入在线看片| 国产对白videos麻豆高潮| 欧洲免费无码视频在线| 欧美国产SE综合| 和朋友换娶妻野外夫妇3| 久久精品高清一区二区三区| 国产男男GAY做受XXX| 差差漫画在线观看登录页面弹窗| 丰满少妇人妻XXXXX| 成人精品动漫一区二区| 宝贝乖女你的奶真大水真多| 亚洲AV永久无码区成人网站| 日本JAPANESE丰满白浆| 国产精品亚洲精品日韩动图| 人曾交互MOUSE农场| 色欲AV永久无码精品无码蜜桃 | 影音先锋2020色资源网| 成人无码区免费A∨直播| 锕锕锕锕锕锕锕好痛免费网址| 色欲AⅤ蜜臀AV在线播放| 亚洲中文久久精品无码照片| 成人女人爽到高潮的Av在线| 亚洲综合成人婷婷五月网址| 无码无套少妇毛多18PX| 久久国产加勒比精品无码| 人妻少妇精品无码专区| 丰满妇女强高潮18ⅩXXX在线| 国产熟女一区二区| 小辣椒AV福利在线网站| 哈昂~哈昂够了太多了男男| 无码人妻精品一区二区三区不卡| 秋霞国产午夜伦午夜无码灬| 纯肉无遮挡H肉动漫在线观看国产 纯肉无遮挡H肉动漫在线观看网址 | 又紧又大又爽精品一区二区| 欧美96在线 | 欧| 日韩乱码人妻无码中文视频| 亚洲AV最新天堂网址| 自拍亚洲综合在线精品| 成年美女黄网站色大片免费看| 国产公妇仑乱在线观看| 成人美女黄网站18禁免费| 亚洲色成人中文字幕网站| 婷婷五月综合色视频| 久久亚洲色WWW成人| 久久99精品久久久久婷婷| 国产精品白浆无码流出| 成年轻人电影WWW无码| 未满十八18禁止免费无码网站| 日韩精品无码熟人妻视频| 国产女人喷潮视频在线观看| W永久939W78W78W乳液| 欧洲美熟女乱又伦AV曰曰| 国产精品久久久久久久久久直播| 成年轻人电影免费 视频| 人妻少妇无码专视频在线| 短篇公交车高H肉辣全集目录| 少妇人妻精品一区二区三区| 狠狠色丁香久久综合婷婷| 无码人妻精品一区二区三区免费| 国产高清在线观看AV片麻豆| 午马视频影院1区2区3区4区| 成人片在线观看地址KK4444| 内射后入在线观看一区| 亚洲VA欧美VA国产VA综合| 短裙公车被直接进入被C| 好男人影视官网在线WWW| 欧美无砖专区一中文字| 久久久久亚洲AV综合仓井空| 亚洲AV自慰白浆喷水网站少妇| 影音先锋2020色资源网| 一本大道色卡1卡2卡3| 精品亚洲国产成人AV在线小说| 亚洲人妻在线视频| 超碰色偷偷男人的天堂| 久久精品第一国产久精国产宅男6 久久精品高清一区二区三区 | 天海翼一区二区三区高清在线| 好男人好资源电影在线播放 | 高清拍拍拍无挡国产精品 | 欧美亚洲日韩不卡在线在线观看| 国产高清在线A视频大全| 纯肉无遮挡H肉动漫在线观看3D | 成人麻豆精品激情视频在线观看| 久久夜色精品国产噜噜噜亚洲AV| 麻豆传播媒体APP官网在线观看| 女人扒开屁股桶爽6O分钟| 国产精品国语对白露脸在线播放| xxxx免费网站| 丰满少妇人妻无码| 欧美大波少妇在厨房被| XXXXX18日本人HDXX| 国产在线视频一区二区三区| 亚洲一线产区和二线产区的区别| 妞干网在线视频免费观看| 趁夫不在给给公侵犯了| 国产男男猛烈无遮挡A片小说 | 欧美黑人疯狂性受XXXXX喷水| 欧美人文艺术欣赏PPT背景| 中文无码乱人伦中文视频在线V| 久久99国产精品久久99软件| 我趁老师睡觉摸她奶脱她内裤| 国产福利一区二区久久| 精品久久久久久国产潘金莲| 久久久久亚洲AV无码专区| 美丽人妻在夫前被黑人| 欧美日韩免费观看| 国产精品无码综合区| 国产精品边做奶水狂喷无码| 久久久久亚洲AV无码专区| 嫩草研究院久久久精品| 国产精品亚洲А∨无码播放麻豆 | 大乱东京道一本热大交乱| 国精产品一二二区传媒有哪些 | XXXX娇小10另类| 精品国产三级A在线观看| 国产成人无码AⅤ片在线观看| 久久寂寞少妇成人内射 | 中文无码乱人伦中文视频播放 | 黑人巨大JEEP日本人| 女主被强迫侵犯H文| 国产成人精品一区二区视频| 中文无码乱人伦中文视频在线V| 成人美女黄网站18禁免费| 午夜无码一区二区三区在线| 日本丰满熟妇BBXBBXHD| 国产精品无码久久久久| 忘忧草影视WWW在线播放网| 狠狠五月激情六月丁香| 无码丰满人妻熟妇区| 宝贝你的奶好大我想吃| 久久久久久精品免费免费WEⅠ| 成人精品免费AV不卡在线观看| 欧美一区二区三区不卡| 日本做受高潮好舒服视频| 一区二区AV在线| 国产成人8X视频网站| 狠色狠色狠狠色综合久久| 日韩人妻不卡一区二区三区| 无码AV最新高清无码专区| 亚洲A级成人无码网站| 草棚CAOPORON已满18进| 亚洲精品日韩AV专区| 亚洲AV无码一区二区二三区我| 真实国产老熟女粗口对白| 一面膜上边一面膜下边韩国| 岳的奶大又白又紧| 日韩AV无码久久精品免费| 久久精品无码一区二区三区免费| 精品深夜av无码一区二区老年| 国产成人精品久久一区二区三区 | 日韩无码视频三区| 欧美私人家庭影院| 国产福利一区二区三区在线视频| 国产成人愉拍免费视频| 亚洲AV午夜福利精品一区二区| 欧美大胆A级视频免费| 扒开双腿疯狂进出爽爽爽免费| 少妇被躁爽到高潮无码| 东京热加勒比视频一区| 久久久久成人精品| 欧美熟老妇人多毛OOXⅩ| 色综合久久久无码中文字幕波多| 国产精品美女乱子伦高| 久久精品熟女亚州AV麻豆| 色悠久久久久综合先锋影音下载| 国产成人亚洲综合网站| 国产精品第20页| 国产成人无码A区在线观看视频| 久久99精品久久久久久野外| 欧亚精品一区三区免费| 欧美黑人一级二级巨大久久天堂| 天天玩天天玩天天玩| 欧洲熟妇色XXXXⅩ欧洲老妇色| 欧美孕妇XXXXBBBB| 狠狠色噜噜狠狠亚洲AV| 波多野结衣AV一区二区三区中文| 公车上玩弄白嫩少妇| 小SAO货都湿掉奶头好硬男女| 岳潮湿的大肥梅开二度第三部最新| 草莓 丝瓜 香蕉 向日葵 榴莲| 中文人妻无码一区二区三区| 无码少妇一区二区三区免费| 亚洲成A人V在线蜜臀| 欧美熟VIDEOS肥婆| 成熟丰满熟妇强av无码区| 亚洲综合色区另类小说| 欧洲精品不卡1卡2卡三卡| 高清性色生活片97| 强奷乱码中文字幕熟女导航| 成人精品一区二区久久久| 色婷婷成人综合激情免费视频| 亲情会王芳高敏大团圆| 成人精品一区二区久久久 | 校长办公室岔开腿呻吟| 婷婷五月综合色视频| 草莓视频CAOMEI888| 久久久久久精品免费无码| 少妇高潮惨叫喷水正在播放| 一面亲上边一面膜的免费| 成人羞羞视频免费网站| 赤裸人妻撅起肥白大屁股| 国产97色在线 | 日韩|