国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

NodeJs操作MongoDB教程之分頁功能以及常見問題

2024-05-06 15:40:56
字體:
供稿:網(wǎng)友

一,方法介紹

 1,聚合操作之count

count()方法可以查詢統(tǒng)計(jì)符合條件的集合的總數(shù)

1 db.User.count(<query>) // 此方法等價(jià)于 db.User.find(<query>).count()

在分布式集合中,會(huì)出現(xiàn)計(jì)算錯(cuò)誤的情況,這個(gè)時(shí)候推薦使用aggregate;

 2,find() 方法以非結(jié)構(gòu)化的方式來顯示所有文檔。

1 db.User.find();//相當(dāng)于:select* from User;

3,exec() 方法用于檢索字符串中的正則表達(dá)式的匹配。(javascript方法)

4,sort() 方法對(duì)數(shù)據(jù)進(jìn)行排序,sort() 方法可以通過參數(shù)指定排序的字段,并使用 1 和 -1 來指定排序的方式,其中 1 為升序排列,而 -1 是用于降序排列。

1 升序:db.User.find().sort({CreateTime: 1});2 降序:db.User.find().sort({CreateTime: -1});

5,skip()方法來跳過指定數(shù)量的數(shù)據(jù),skip方法同樣接受一個(gè)數(shù)字參數(shù)作為跳過的記錄條數(shù)。

1 db.User.find().skip(2)//跳過2條

6,limit()方法接受一個(gè)數(shù)字參數(shù),該參數(shù)指定從MongoDB中讀取的記錄條數(shù)。一般與skip連用

1 # limit()中number值為空時(shí)代表全部查出2 db.User.find().limit(2) #讀取的條數(shù)
1 # 常用在分頁方法中2 # 查詢User集合中,跳過前兩條記錄,每頁一條記錄3 > db.User.find().skip(2).limit(1)

二,封裝與接口拋出

2.1,分頁查詢

  1,根據(jù)查詢條件獲取總條數(shù),使用count({},callback)方法

/** * 根據(jù)條件獲取有多少條數(shù)據(jù) 文檔數(shù) * @param table_name 表名 * @param conditions 查詢條件 {a:1, b:2} * @param callback 回調(diào)方法 */MongoDbAction.getTotal = function (table_name, conditions, callback) { var node_model = this.getConnection(table_name); if (!node_model || node_model.message) { if (callback) callback(1, node_model) } else { node_model.find(conditions)  .count({})  .exec(function (err, total) {  if (err) {   if (callback) callback(err);  } else {   if (callback) callback(null, total);  }  }); }};

2,實(shí)現(xiàn)連寫查詢

 (1)這個(gè)可以用來做分頁,表示獲取從第1條(第1條記錄序號(hào)為0)記錄開始的10條記錄.類似與Mysql的limit 0, 10,如下:

{ limit:10,//pageSize skip:0//page:skip+1}

(2)按某個(gè)字段升序(1)降序(-1),如下 按照創(chuàng)建時(shí)間進(jìn)行降序排列

sort: {CreateTime: -1},

(3)代碼連寫查詢實(shí)現(xiàn):

/** * 連寫查詢 查詢多條數(shù)據(jù) * @param table_name 表名 * @param conditions 查詢條件 {a:1, b:2} * @param options 選項(xiàng):{fields: "a b c", sort: {time: -1}, limit: 10} * @param callback 回調(diào)方法 */MongoDbAction.whereCondition = function (table_name, conditions, options, callback) { var node_model = this.getConnection(table_name); if (!node_model || node_model.message) {  if (callback) callback(1, node_model) } else {  node_model.find(conditions)   .select(options.fields || '')   .sort(options.sort || {})//排序 //按某個(gè)字段升序(1)降序(-1)   .skip(options.skip || 0)//跳過的條數(shù)   .limit(options.limit || {})//查詢幾條   .exec(function (err, res) {    if (err) {     if (callback) callback(err);    } else {     if (callback) callback(null, res);    }   }); }};            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 姚安县| 隆子县| 麻江县| 曲水县| 营口市| 南京市| 千阳县| 鹿邑县| 平度市| 林芝县| 定日县| 封开县| 米易县| 临沂市| 老河口市| 海原县| 贡山| 宝丰县| 班玛县| 连平县| 平定县| 江口县| 麻阳| 闽侯县| 水富县| 海伦市| 祁东县| 章丘市| 钟山县| 钟祥市| 太仓市| 五台县| 新营市| 宕昌县| 县级市| 阿鲁科尔沁旗| 海晏县| 鄂温| 安西县| 湘西| 巴塘县|