91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

node.js利用mongoose獲取mongodb數據的格式化問題詳解

發布時間:2020-09-23 14:44:45 來源:腳本之家 閱讀:139 作者:triste 欄目:web開發

說明

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

下面示例默認使用co 和 es6 */yield 語法,當然也可以使用async/await

1. 安裝mongoose

$ npm install mongoose co moment --save

說明:

  • mongoose: mongodb 的nodejs 數據庫驅動
  • co: 一個自動執行的generate函數容器
  • moment: 時間格式化

2. 處理數據

如下代碼:

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

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

[ '$__', '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' }

總結

以上就是這篇文章的全部內容,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

浦北县| 水城县| 开阳县| 泽库县| 余庆县| 永城市| 南充市| 凤城市| 玉溪市| 台中县| 沁阳市| 浦北县| 旬阳县| 柳林县| 安远县| 新田县| 河南省| 左贡县| 正安县| 裕民县| 聂荣县| 洛扎县| 江永县| 卢氏县| 高邑县| 宜良县| 宾阳县| 旌德县| 黑龙江省| 应用必备| 麟游县| 全南县| 城固县| 云霄县| 志丹县| 仙游县| 察雅县| 翼城县| 衡阳县| 凤冈县| 三都|