亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MongoDB > 正文

MongoDB多表關聯查詢的語句是什么?如何操作?

2024-09-07 00:22:30
字體:
來源:轉載
供稿:網友
       我們在使用MongoDB時,經常需要進行MongoDB多表關聯查詢,因此多表關聯查詢也是需要掌握的內容,本文就給大家分享一下MongoDB多表關聯查詢實例,有需要的朋友可以看看。
 
       Mongoose的多表關聯查詢
 
       首先,我們回憶一下,MySQL多表關聯查詢的語句:
 
 
       通過student的classId關聯進行查詢學生名稱,班級的數據:SELECT student.name,student.age,class.name FROM student,class WHERE student.classId = class.id
 
       Mongoose多表聯合查詢(還是以眾所周知的學生、班級作為實例)
 
       ・ 表結構的定義(schemas目錄下)
 
       1. student表(student.js)
 
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
/*定義數據模式*/
var StudentSchema = new mongoose.Schema({
  name: String,
  calssId: {
    type: Schema.Types.objectId,
    ref: 'class'
  },
  age: Number,
  number: Number,
  meta: {
    createAt: {
      type: Date,
      default: Date.now()
    },
    updateAt: {
      type: Date,
      default: Date.now()
    }
  }
  /*更新時間的*/
});
module.exports = StudentSchema;
 
       2. class表(class.js)
 
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
/*定義數據模式*/
var ClassSchema = new mongoose.Schema({
  name: String,
  meta: {
    createAt: {
      type: Date,
      default: Date.now()
    },
    updateAt: {
      type: Date,
      default: Date.now()
    }
  }
  /*更新時間的*/
});
module.exports = ClassSchema;
 
・ 生成Model(model目錄下)
 
       1. student Model(student.js)
 
var mongoose = require('mongoose');
var StudentSchema = require('../schemas/student');
/*通過model編譯模式為模型*/
var Student = mongoose.model('student', StudentSchema);
/*導出Student模型 模塊*/
module.exports = Student;
 
       2. class Model(class.js)
 
var mongoose = require('mongoose');
var ClassSchema = require('../schemas/class');
/*通過model編譯模式為模型*/
var Class = mongoose.model('class', ClassSchema);
/*導出Class模型 模塊*/
module.exports = Class;
 
       ・ Model進行數據的查詢操作
 
       1. 將靜態類的方法加到Model的編譯中
 
StudentSchema.static = {
  fetch: function(cb){
 return this
   .find({})
   .sort('meta.updateAt') //按更新的時間排序
  }
}
 
       2. 將靜態類方法加到Model中
 
StudentSchema.static('fetch', function(cb){
   return this
     .find({}, cb)
  .sort('meta.updateAt')
})
 
       3. 直接調用model的find()方法
 
       查詢的結果均為:
 
[
    {
        _id: '5a05222f583e5720b8660191',
        name: '張三',
        age: 18,
        number: 11,
        classId: '5a0036512b740f32e4371e66'
    },
    {
        _id: '5a05222f583e5720b8660091',
        name: '李四',
        age: 19,
        number: 11,
        classId: '5a0036512b740f32e1371e66'
    },
    {
        _id: '5a05222f583e5720b18660191',
        name: '趙五',
        age: 17,
        number: 11,
        classId: '5a0036512b7420f32e4371e66'
    }
]
 
       ・ 多表聯合查詢(學生對應班級)
 
StudentSchema.static = {
  findStudentWithClass: function (cb) {
    return this
      .find({})
      .populate('classId')//注意這是聯合查詢的關鍵
      .sort('meta.updateAt')
      .exec(cb)
  }
}
 
       查詢結果:
 
[
    {
        _id: '5a05222f583e5720b8660191',
        name: '張三',
        age: 18,
        number: 11,
        classId: {
            _id: '5a0036512b740f32e4371e66',
            name: '一年1班'
        }
    },
    {
        _id: '5a05222f583e5720b8660091',
        name: '李四',
        age: 18,
        number: 11,
        classId: {
            _id: '5a0036512b740f32e1371e66',
            name: '二年2班'
        }
    },
    {
        _id: '5a05222f583e5720b18660191',
        name: '趙五',
        age: 18,
        number: 11,
        classId: {
            _id: '5a0036512b7420f32e4371e66',
            name: '一年2班'
        }
    }
]
 
       ・ 由上面的實例可知,mongoose的多表聯合查詢的關鍵:
 
       1. 數據模式結構定義需要利用關鍵字ref定義關聯
 
var Schema = new mongoose.Schema({
  field: {
 type: mongoose.Schema.Type.ObjectId,
 ref: 'model'
  }
});
Schema.static = {
  fetch: function(cb){
 return this
    .find({})
    .populate('field')
    .exec(cb)
 }
 }
var Model = mongoose.Model('model',Schema ); 

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美华人在线视频| 欧美精品少妇videofree| 夜色77av精品影院| 国产精品中文字幕久久久| 中文字幕在线精品| 国产在线拍偷自揄拍精品| 亚洲一区二区三区sesese| 亚洲精品国产精品久久清纯直播| 成人黄色免费在线观看| 91久热免费在线视频| 亚洲偷熟乱区亚洲香蕉av| 欧美日韩一区二区免费在线观看| 亚洲福利视频免费观看| 亚洲精品视频中文字幕| 国产精品久久久久久av福利| 亚洲国产婷婷香蕉久久久久久| 一区二区三区精品99久久| 午夜精品久久久久久久99热浪潮| 色悠悠久久久久| 日韩在线观看电影| 亚洲一区二区少妇| 国产精品视频免费观看www| 中文字幕av一区二区三区谷原希美| 91超碰中文字幕久久精品| 日韩免费在线视频| 中文字幕精品—区二区| 欧美老肥婆性猛交视频| 欧美精品电影免费在线观看| 欧美激情视频网| 97欧美精品一区二区三区| 国产一区二区三区四区福利| 韩日欧美一区二区| 欧美视频不卡中文| 久久久久一本一区二区青青蜜月| 久久艳片www.17c.com| 国产成人aa精品一区在线播放| 久久久久久12| 97超级碰碰碰久久久| 久久夜色精品国产亚洲aⅴ| 日韩精品在线影院| 91久久久久久久久久久| 日韩欧美中文字幕在线播放| 有码中文亚洲精品| 精品国产乱码久久久久久虫虫漫画| 欧美成人免费视频| 久久九九精品99国产精品| 欧美性xxxxx| 尤物yw午夜国产精品视频明星| 欧美在线免费看| 亚洲成人av中文字幕| 日韩精品久久久久| 亚洲成人激情小说| 精品久久久av| 久久久91精品国产| 精品自在线视频| 精品亚洲一区二区三区| 国产精品美女无圣光视频| 91久久在线视频| 成人黄色免费在线观看| 亚洲精品国产福利| 国产视频福利一区| 在线免费观看羞羞视频一区二区| 亚洲一区第一页| 国产日韩欧美在线播放| 亚洲激情电影中文字幕| 免费99精品国产自在在线| 欧美中文字幕视频| 久久影院资源站| 91在线观看免费观看| 欧美中文在线观看| 性色av一区二区三区免费| 中国日韩欧美久久久久久久久| 亚洲免费高清视频| 欧美视频不卡中文| 国产精品丝袜白浆摸在线| 亚洲永久在线观看| 欧美成年人视频网站| 成人黄色在线观看| 2021久久精品国产99国产精品| 91成人天堂久久成人| 亚洲国产欧美日韩精品| 亚洲视频在线观看免费| 午夜伦理精品一区| 欧美性猛交xxxx乱大交3| 国产美女直播视频一区| 日韩hd视频在线观看| 日韩成人在线电影网| 久久久中精品2020中文| 国产成人精品视频| 国产日韩精品视频| 欧美洲成人男女午夜视频| 最近2019免费中文字幕视频三| 色狠狠久久aa北条麻妃| 国产精品入口免费视频一| 亚洲激情电影中文字幕| www.亚洲男人天堂| 国产极品精品在线观看| 欧美黑人国产人伦爽爽爽| 国产精品国产三级国产专播精品人| 亚洲精品丝袜日韩| 亚洲欧美中文日韩v在线观看| 国产精品一久久香蕉国产线看观看| 隔壁老王国产在线精品| 91超碰中文字幕久久精品| 国产精品视频色| 欧美激情一二区| 精品亚洲va在线va天堂资源站| 国模极品一区二区三区| 欧美日韩国产一区在线| 亚洲一区国产精品| 欧美美最猛性xxxxxx| 亚洲精品网站在线播放gif| 中国china体内裑精亚洲片| 精品国产一区av| 亚洲性猛交xxxxwww| 欧美日韩在线观看视频| 国产精品电影一区| 国产精品视频播放| 成人美女免费网站视频| 在线日韩精品视频| 亚洲美女av在线| 亚洲欧美在线免费观看| 久久精品国产欧美激情| 日韩免费电影在线观看| 欧美精品videos另类日本| 日韩成人av一区| 久久亚洲春色中文字幕| 国产精品三级美女白浆呻吟| 欧美—级高清免费播放| 亚洲男人天堂视频| 91精品成人久久| 欧美日韩视频免费播放| 欧美极品少妇与黑人| 亚洲国产精品va在线观看黑人| 最近的2019中文字幕免费一页| 亚洲嫩模很污视频| 欧美午夜电影在线| 欧美成人激情在线| 欧美日韩第一视频| xvideos国产精品| 91视频国产一区| 国产精品第一页在线| 亚洲r级在线观看| 欧美在线一级va免费观看| 日韩精品视频在线播放| 久久精品国产亚洲一区二区| 91精品在线一区| 国产精品电影网| 青青久久av北条麻妃黑人| 欧美电影免费观看网站| 91免费看片在线| 国产自产女人91一区在线观看| 久久久精品亚洲| 精品一区精品二区| 91精品视频在线看| 亚洲第一区在线观看| 黑人狂躁日本妞一区二区三区| 国产最新精品视频| 九九热这里只有精品6| 久久手机精品视频| 日韩视频亚洲视频| 亚洲欧洲偷拍精品| 亚洲2020天天堂在线观看| 一本色道久久88精品综合|