麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > MongoDB > 正文

Mongodb實現的關聯表查詢功能【population方法】

2020-03-14 12:54:19
字體:
來源:轉載
供稿:網友

本文實例講述了Mongodb實現的關聯表查詢功能。分享給大家供大家參考,具體如下:

Population

MongoDB是非關聯數據庫。但是有時候我們還是想引用其它的文檔。這就是population的用武之地。

Population是從其它文檔替換文檔中的特定路徑。我們可以遷移一個單一的文件,多個文件,普通對象,多個普通的對象,或從查詢中返回的所有對象

populate 方法

populate 方法可以用在 document 上、 model 上或者是 query 對象上,這意味著你幾乎可以在任何地方調用這個方法以填充你的引用字段。

當然,populate 方法在不同對象上參數不大一樣,但是都接收一個option的參數,你可以用這些參數指定:

語法:Query.populate(path, [select], [model], [match], [options])

path:以空格分隔的引用字段的名稱 String 或 Object類型,
String 類型的時, 指定要填充的關聯字段,要填充多個關聯字段可以以空格分隔。
Object 類型的時,就是把 populate 的參數封裝到一個對象里。當然也可以是個數組

select: Object 或 String ,可選,指定填充 document 中的哪些字段。
Object 類型的時,格式如: {name: 1, _id: 0} ,為 0 表示不填充,為 1 時表示填充。
String 類型的時,格式如: "name -_id" ,用空格分隔字段,在字段名前加上 -表示不填充。詳細語法介紹 query-select

match: 可選,指定附加的查詢條件

model: 可選,指定關聯字段的 model,如果沒有指定就會使用 Schema的 ref

options:  Object 可選,指定附加的其他查詢選項,如排序以及條數限制等等

引用字段的類型

目前,Mongoose 只支持以下幾種引用字段的類型:

ObjectId
Number
String
Buffer

而且自然而然,引用 document 的主鍵類型必須和引用字段類型相對應。在生產環境中,推薦主鍵類型和引用類型都使用 ObjectId ,一是因為 ObjectId 不包含業務含義,二是 ObjectId 不大可能重復,三是因為 Mongoose 默認生成的主鍵類型就是 ObjectId ,可以減少很多配置的操作。

例子

Scheme先定義好,關聯屬性

AScheme:

var mongoose = require('mongoose');var Schema = mongoose.Schema;var AScheme= new Schema({  name: {    type: String,    default: ''  }},{collection: 'a'});module.exports = mongoose.model('A', CountSchema);

BScheme:

var mongoose = require('mongoose');var Schema = mongoose.Schema;var BScheme= new Schema({  name: {    type: String,    default: ''  },  age:{    type:Number  }  aid: {     type: mongoose.Schema.ObjectId,//如果AScheme的_id type為String,這里對應寫String     ref:'A'  }},{collection: 'b'});module.exports = mongoose.model('B', CountSchema);

關聯查詢

AModel.find().populate({path: 'aid', select: {name: 1,_id:0}}).exec(function(err, a) {  if (err) res.send(err);  console.log(a);});//AModel.find(...).populate({ path: 'aid', match: { age: { $gte: 21 }}, select: 'name -_id', options: { limit: 5 } }) .exec()

更多相關內容還可參考:http://mongoosejs.com/docs/api.html#model_Model.populate

希望本文所述對大家MongoDB數據庫程序設計有所幫助。


注:相關教程知識閱讀請移步到MongoDB頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产女厕一区二区三区在线视 | 97中文 | jizzjizz中国少妇中文 | 国产精品视频2021 | 日韩精品久久久久久久电影99爱 | 免费a视频在线观看 | 国产亚洲高清视频 | 久久精品国产99国产精品澳门 | 久久成人午夜视频 | 精品中文字幕在线播放 | 日本欧美中文字幕 | 久久蜜桃精品一区二区三区综合网 | 99成人精品视频 | 天天天干夜夜夜操 | 色阁阁69婷婷 | 国产羞羞视频在线观看 | www深夜成人 | 操操操日日日干干干 | 久久久久av电影 | 少妇一级淫片免费放正片 | 精品一区二区三区欧美 | 成人在线视频免费播放 | 久久亚洲精品视频 | 国产999在线 | 蜜桃网在线 | 国产一区二区精彩视频 | 亚洲午夜一区二区三区 | 亚洲福利在线观看视频 | 在线中文字幕播放 | 黄色片在线观看网站 | 99re66热这里只有精品8 | 国产成年人小视频 | 狠狠干天天操 | 国产深夜福利视频在线播放 | 福利在线影院 | 操碰视频在线观看 | 日本精品久久久一区二区三区 | 日本a级一区 | 精品偷拍久久 | 久久久涩 | jizzjizzjizzjizz国产|