最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mongodb實現(xiàn)的關聯(lián)表查詢功能【population方法】

 更新時間:2017年07月20日 11:06:36   作者:IT姑涼  
這篇文章主要介紹了Mongodb實現(xiàn)的關聯(lián)表查詢功能,結(jié)合實例形式較為詳細的分析了population方法實現(xiàn)關聯(lián)表查詢的原理與相關操作技巧,需要的朋友可以參考下

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

Population

MongoDB是非關聯(lián)數(shù)據(jù)庫。但是有時候我們還是想引用其它的文檔。這就是population的用武之地。

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

populate 方法

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

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

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

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

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

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

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

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

引用字段的類型

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

ObjectId
Number
String
Buffer

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

例子

Scheme先定義好,關聯(lián)屬性

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);

關聯(lián)查詢

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()

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

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

相關文章

  • mongodb中oplog介紹和格式詳析

    mongodb中oplog介紹和格式詳析

    Oplog 是用于存儲 MongoDB 數(shù)據(jù)庫所有數(shù)據(jù)的操作記錄的(實際只記錄增刪改和一些系統(tǒng)命令操作,查是不會記錄的),有點類似于 mysql 的 binlog 日志,這篇文章主要給大家介紹了關于mongodb中oplog和格式的相關資料,需要的朋友可以參考下
    2021-07-07
  • MongoDB中UPDATE操作$pullAll的方法

    MongoDB中UPDATE操作$pullAll的方法

    與$pull有所不同,$pull操作通過指定一個查詢條件或單個值來刪除數(shù)組中的元素, 而$pullAll刪除所有在指定列表中的數(shù)組元素,本文介紹Mongodb UPDATE操作中的$pullAll, 用來從數(shù)組中刪除多個元素,感興趣的朋友一起看看吧
    2024-06-06
  • MongoDB導出查詢結(jié)果到文件例子

    MongoDB導出查詢結(jié)果到文件例子

    這篇文章主要介紹了MongoDB導出查詢結(jié)果到文件例子,本文直接給出示例代碼,簡潔易懂,需要的朋友可以參考下
    2015-02-02
  • MongoDB快速入門筆記(六)之MongoDB刪除文檔操作

    MongoDB快速入門筆記(六)之MongoDB刪除文檔操作

    這篇文章主要介紹了MongoDB快速入門筆記(六)之MongoDB刪除文檔操作 的相關資料,需要的朋友可以參考下
    2016-06-06
  • 將MongoDB加入到Windows的本地服務項的方法

    將MongoDB加入到Windows的本地服務項的方法

    下面主要針對MongoDB在Windows下加入本地服務項做一些簡單的分享。以方便剛接觸MongoDB并在Windows環(huán)境下進行開發(fā)的同學
    2014-08-08
  • 詳解Mongodb?多文檔聚合操作處理方法(Map-reduce?函數(shù))

    詳解Mongodb?多文檔聚合操作處理方法(Map-reduce?函數(shù))

    這篇文章主要介紹了Mongodb多文檔聚合操作處理方法(Map-reduce函數(shù)),本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • Ubuntu中安裝MongoDB及執(zhí)行一些簡單操作筆記

    Ubuntu中安裝MongoDB及執(zhí)行一些簡單操作筆記

    這篇文章主要介紹了Ubuntu中安裝MongoDB及執(zhí)行一些簡單操作筆記,本文同時給出了查看已有數(shù)據(jù)庫、刪除數(shù)據(jù)庫、創(chuàng)建數(shù)據(jù)庫等操作命令實例,需要的朋友可以參考下
    2014-09-09
  • windows安裝mongodb6.x并設置用戶名密碼的詳細過程

    windows安裝mongodb6.x并設置用戶名密碼的詳細過程

    這篇文章主要介紹了windows安裝mongodb6.x并設置用戶名密碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • 淺談MySQL和MariaDB區(qū)別(mariadb和mysql的性能比較)

    淺談MySQL和MariaDB區(qū)別(mariadb和mysql的性能比較)

    MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品
    2018-02-02
  • MongoDB學習之Text Search文本搜索功能

    MongoDB學習之Text Search文本搜索功能

    這篇文章主要給大家介紹了MongoDB之Text Search文本搜索功能的相關資料,文中給出了詳細的示例代碼供大家參考學習,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-05-05

最新評論

巴中市| 龙游县| 乳山市| 中牟县| 台北县| 海兴县| 德保县| 双辽市| 静宁县| 孙吴县| 九龙坡区| 安仁县| 东宁县| 周至县| 浦北县| 盐津县| 千阳县| 股票| 湖州市| 万山特区| 石林| 洮南市| 漠河县| 庆安县| 高平市| 晋中市| 和硕县| 陕西省| 铜梁县| 四平市| 工布江达县| 哈尔滨市| 西平县| 盘锦市| 武定县| 张家界市| 监利县| 无极县| 大悟县| 客服| 阳江市|