iT邦幫忙

DAY 18
0

Node.js 學習筆記系列 第 18

Node.js學習筆記十七:將MongoDB資料的Object拆解(二)

  • 分享至 

  • xImage
  •  

上一篇我們把從MongoDB讀取的Object類型拆解成獨立的變數,我們再來看看那段程式是怎樣實現的。

以下是我們的程式:

router.get('/userlist', function(req, res) {
    var db = req.db;
    var collection = db.get('usercollection');
    collection.find({},{},function(e,docs){
      var objKey = Object.keys(docs);
      objKey.forEach(function(objectid){
        var items = Object.keys(docs[objectid]);
        items.forEach(function(itemkey) {
          var itemvalue =docs[objectid][itemkey];
          console.log(objectid+': '+itemkey+' = '+itemvalue);
        })
      })
      res.render('userlist', {
          "userlist" : doc
      });
    });
});

首先看"Object.keys(docs)"這個函數,它的作用是取得Object的編號。每一個完整的Obeject有一個編號,這樣我們就知道一共有幾個Objects,並透過編號來對相應的Object進行操作。

由於Object.keys()回傳的是陣列(array),我們可以用objKey.forEach()來對每一個項目(這裡就是每一個Object)作進一步處理。objKey.forEach()裡面放的callback function即是對每一個項目都執行一次,其中的objectid就是objKey裡保存的每一個Object的編號(取自Object.Keys())。這裡是第一層(forEach),我們可以叫它Object層,意思是對Objects進行forEach。

Object層下面是key層,是對Object裡面的key進行forEach。Object裡面的key就是:_id, username, email這三個key。"Object.keys(docs[objectid])"的功能就是取得key層,接著對key層進行forEach,目的是要取得每一個key所相對應的值(value)。

"var itemvalue =docs[objectid][itemkey];"這一行便是要取得每一個key的value。

最後我們得到三個變數:

  1. objectid: 每一個Object的ID

  2. itemkey: 每一個Object底下的key

  3. itemvalue: 每一個key所對應的值

這樣我們已取得Object裡的所有資料。

(本文同步發表於: NodeJust.com )


上一篇
Node.js學習筆記十六:將MongoDB資料的Object拆解
下一篇
Node.js學習筆記十八:Node.js的陣列
系列文
Node.js 學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言