欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

node.js利用mongoose獲取mongodb數(shù)據(jù)的格式化問題詳解

 更新時間:2017年10月06日 10:19:33   作者:triste  
這篇文章主要給大家介紹了關(guān)于node.js利用mongoose獲取mongodb數(shù)據(jù)的格式化問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)把。

說明

大家都知道在mongodb 中獲取數(shù)據(jù),不管使用回調(diào)函數(shù)還是Promise又或者generate 語法最后得到都是mongoose.Query對象,不能直接操作如同普通對象一樣得到單行數(shù)據(jù)。還有就是時間格式化問題,見下面。

下面示例默認(rèn)使用co 和 es6 */yield 語法,當(dāng)然也可以使用async/await

1. 安裝mongoose

$ npm install mongoose co moment --save

說明:

  • mongoose: mongodb 的nodejs 數(shù)據(jù)庫驅(qū)動
  • co: 一個自動執(zhí)行的generate函數(shù)容器
  • moment: 時間格式化

2. 處理數(shù)據(jù)

如下代碼:

// 省略鏈接數(shù)據(jù)庫,詳情見文檔
const mongoose = require('mongoose')
const co = require('co')
const Schema = mongoose.Schema
const PersonSchema = new Schema({
 name: String,
 age: String,
 createAt: {
  type: Date,
  default: Date.now,
  get: v => moment(v).format('YYYY-MM-DD HH:mm')
 }
})

const PersonModel = mongoose.model('Person', PersonSchema) // 創(chuàng)建模型
const Person = new PersonModel() // 創(chuàng)建文檔對象
co(function * () {
 let person = yield Person.findOne({name: 'zhengsan'})
 // 這里person 是一個mongoose.Query對象
 // 到這里一般直接使用person 就是一個對象能夠獲取{ name, type, createAt } 
 // 但是不能夠操作這三個,除非單獨一個一個復(fù)制到另外一個對象,問題就在這里?
})()

這里通過 Object.keys(person)可以得到如下數(shù)據(jù):

[ '$__', 'isNew', 'errors', '_doc', '$init' ]

3. 得到普通對象

通過查詢mongoose 文檔最后得到解決辦法而且,可以輕松格式化哦:

// 接上面代碼
let person = yield Person.findOne({name: 'zhangsan'})
person = person.toJSON({getters: true})
// 此時person對象對象
// { name: 'zhengsan', age: 32, createAt: '2017-02-03 12:30' }

總結(jié)

以上就是這篇文章的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • node.js實現(xiàn)上傳文件功能

    node.js實現(xiàn)上傳文件功能

    這篇文章主要為大家詳細(xì)介紹了node.js實現(xiàn)上傳文件功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • NodeJs生成sitemap站點地圖的方法示例

    NodeJs生成sitemap站點地圖的方法示例

    這篇文章主要介紹了NodeJs生成sitemap站點地圖的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 使用Node.js實現(xiàn)ORM的一種思路詳解(圖文)

    使用Node.js實現(xiàn)ORM的一種思路詳解(圖文)

    這篇文章主要介紹了用Node.js實現(xiàn)ORM的一種思路詳解(圖文),需要的朋友可以參考下
    2017-10-10
  • 手動下載Chrome并解決puppeteer無法使用問題

    手動下載Chrome并解決puppeteer無法使用問題

    本篇文章主要介紹了手動下載Chrome并解決puppeteer無法使用問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • 如何利用node實現(xiàn)發(fā)送QQ郵箱驗證碼

    如何利用node實現(xiàn)發(fā)送QQ郵箱驗證碼

    我們在開發(fā)網(wǎng)站時,發(fā)送驗證碼的功能是必定會遇到的,下面這篇文章主要給大家介紹了關(guān)于如何利用node實現(xiàn)發(fā)送QQ郵箱驗證碼的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • Node.js包管理器代理工具Verdaccio輕松創(chuàng)建管理本地npm包倉庫

    Node.js包管理器代理工具Verdaccio輕松創(chuàng)建管理本地npm包倉庫

    這篇文章主要為大家介紹了Node.js包管理器代理工具Verdaccio輕松創(chuàng)建管理本地npm包倉庫的使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • pnpm的安裝及其使用教程(匯總)

    pnpm的安裝及其使用教程(匯總)

    pnpm是 Node.js 的替代包管理器,它是 npm 的直接替代品,速度更快、效率更高,它由 npm/yarn 衍生而來,但卻解決了 npm/yarn 內(nèi)部潛在的 bug,并且極大了地優(yōu)化了性能,本文給大家介紹pnpm的安裝及其使用,感興趣的朋友一起看看吧
    2023-12-12
  • nodejs 整合kindEditor實現(xiàn)圖片上傳

    nodejs 整合kindEditor實現(xiàn)圖片上傳

    這篇文章主要介紹了nodejs 整合kindEditor實現(xiàn)圖片上傳,需要的朋友可以參考下
    2015-02-02
  • 基于Nodejs實現(xiàn)文件壓縮和解壓功能

    基于Nodejs實現(xiàn)文件壓縮和解壓功能

    在?windows?系統(tǒng)上面,我們壓縮文件,常常需要安裝一些壓縮軟件才能實現(xiàn)壓縮,可能有些還存在一些問題,所以本文就來使用Nodejs實現(xiàn)文件壓縮和解壓功能吧
    2024-03-03
  • node.js實現(xiàn)websocket的即時通訊詳解

    node.js實現(xiàn)websocket的即時通訊詳解

    這篇文章主要介紹了深入淺出講解websocket的即時通訊,服務(wù)器可以主動向客戶端推送信息,客戶端也可以主動向服務(wù)器發(fā)送信息,是真正的雙向平等對話,屬于服務(wù)器推送技術(shù)的一種,需要的朋友可以參考下
    2023-05-05

最新評論