亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

mongoose中利用populate處理嵌套的方法

 更新時間:2017年05月26日 11:38:02   作者:Jake  
這篇文章主要給大家介紹了關(guān)于mongoose中利用populate處理嵌套的方法,文中通過示例代碼介紹的非常詳細(xì),對大家具有一的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。

前言

nodejs在使用mongdb數(shù)據(jù)庫中經(jīng)常會使用到嵌套,比如一個多級分類等。這里我使用學(xué)校-->學(xué)院-->學(xué)生來展示使用populate處理嵌套。

定義modal

在模式中,我們需要使用Schema.ObjectId來表示要指向數(shù)據(jù)在mongodb數(shù)據(jù)庫中的_id。

學(xué)校

在學(xué)校的Schema中,colleges屬性是要包含的學(xué)院的_id屬性數(shù)組。

var SchoolSchema = new Schema({
 name: String,
 colleges: [{
 type: Schema.ObjectId,
 ref: 'College'
 }],
 createTime: {
 type: Date,
 default: Date.now()
 }
});
var School = mongoose.model('School', SchoolSchema);

學(xué)院

var CollegeSchema = new Schema({
 name: String,
 students: [{
 type: Schema.ObjectId,
 ref: 'Student'
 }],
 createTime: {
 type: Date,
 default: Date.now()
 }
});
var College = mongoose.model('College', CollegeSchema);

學(xué)生

var StudentSchema = new Schema({
 name: String,
 sex: String,
 age: Number,
 createTime: {
 type: Date,
 default: Date.now()
 }
});
var Student = mongoose.model('Student', StudentSchema);

查找

直接查找

查找學(xué)校并找到指向的學(xué)院

School
 .find()
 .populate('colleges', ['_id','name'])
 .exec((err, schools) => {
 if (err) {
 console.log(err)
 }
 console.log(schools)
 })

populate的第一個參數(shù)是學(xué)校表中需要指向?qū)W院表的屬性,即colleges;第二個參數(shù)為要在學(xué)院中查找的屬性。如果不填寫第二個參數(shù),則默認(rèn)全都查出。

這樣查找出的結(jié)果中,學(xué)院的學(xué)生屬性是該學(xué)院包含的學(xué)生的_id屬性。如果需要都查找出來需要使用嵌套populate。

嵌套

School
 .find()
 .populate({
 path: 'colleges',
 select: ['_id', 'name'],
 // model: 'College',
 populate: {
 path: 'students',
 select: ['_id', 'name']
 // model: 'Student'
 }
 })
 .sort({
 createTime: -1
 }).exec(function(err, schools) {
 if (err) {
 console.log(err)
 }
 });

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:

相關(guān)文章

  • React和Node.js快速上傳進(jìn)度條功能實現(xiàn)

    React和Node.js快速上傳進(jìn)度條功能實現(xiàn)

    這篇文章主要為大家介紹了React和Node.js快速上傳進(jìn)度條功能實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 使用DNode實現(xiàn)php和nodejs之間通信的簡單實例

    使用DNode實現(xiàn)php和nodejs之間通信的簡單實例

    這篇文章主要介紹了使用DNode實現(xiàn)php和nodejs之間通信的簡單實例,本文講解了DNode的安裝,以及使用的它的步驟和方法,需要的朋友可以參考下
    2015-07-07
  • Nodejs高擴(kuò)展性的模板引擎 functmpl簡介

    Nodejs高擴(kuò)展性的模板引擎 functmpl簡介

    本文給大家分享的是一款nodejs高擴(kuò)展性的模板引擎functmpl的簡單介紹以及用法詳解,有需要的小伙伴可以參考下
    2017-02-02
  • node.js中的fs.lchown方法使用說明

    node.js中的fs.lchown方法使用說明

    這篇文章主要介紹了node.js中的fs.lchown方法使用說明,本文介紹了fs.lchown的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • nodejs讀取圖片返回給瀏覽器顯示

    nodejs讀取圖片返回給瀏覽器顯示

    這篇文章主要為大家詳細(xì)介紹了nodejs讀取圖片返回給瀏覽器顯示,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Node.js?模塊的加載邏輯你了解嘛

    Node.js?模塊的加載邏輯你了解嘛

    這篇文章主要為大家介紹了Node.js?模塊的加載邏輯,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • 測試驅(qū)動ChatGPT編程示例詳解

    測試驅(qū)動ChatGPT編程示例詳解

    這篇文章主要為大家介紹了測試驅(qū)動ChatGPT編程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • Node文件操作匯總實例詳解

    Node文件操作匯總實例詳解

    這篇文章主要為大家介紹了Node文件操作匯總實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • Node.js?應(yīng)用探索文件解壓縮示例詳解

    Node.js?應(yīng)用探索文件解壓縮示例詳解

    這篇文章主要為大家介紹了Node.js?應(yīng)用探索文件解壓縮示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Node.js如何快速導(dǎo)出多表頭的excel文件實現(xiàn)方法

    Node.js如何快速導(dǎo)出多表頭的excel文件實現(xiàn)方法

    這篇文章主要為大家介紹了Node.js如何快速導(dǎo)出多表頭的excel文件實現(xiàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06

最新評論