真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

說明

成都創(chuàng)新互聯(lián)是一家專業(yè)提供鄯善企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、H5頁(yè)面制作、小程序制作等業(yè)務(wù)。10年已為鄯善眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。

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

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

1. 安裝mongoose

$ npm install mongoose co moment --save

說明:

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

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

如下代碼:

// 省略鏈接數(shù)據(jù)庫(kù),詳情見文檔
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)建文檔對(duì)象
co(function * () {
 let person = yield Person.findOne({name: 'zhengsan'})
 // 這里person 是一個(gè)mongoose.Query對(duì)象
 // 到這里一般直接使用person 就是一個(gè)對(duì)象能夠獲取{ name, type, createAt } 
 // 但是不能夠操作這三個(gè),除非單獨(dú)一個(gè)一個(gè)復(fù)制到另外一個(gè)對(duì)象,問題就在這里?
})()

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

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

3. 得到普通對(duì)象

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

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

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)創(chuàng)新互聯(lián)的支持。


當(dāng)前標(biāo)題:node.js利用mongoose獲取mongodb數(shù)據(jù)的格式化問題詳解
URL鏈接:http://weahome.cn/article/ihohhg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部