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

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 15:25:56
字體:
來源:轉載
供稿:網友

說明

大家都知道在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.Schemaconst 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' }

總結

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 台东市| 遵义市| 吉林省| 南康市| 兴国县| 丹东市| 陈巴尔虎旗| 丰镇市| 德州市| 新乐市| 定州市| 深州市| 师宗县| 阳曲县| 河曲县| 偃师市| 原阳县| 浪卡子县| 漾濞| 安仁县| 松潘县| 西安市| 中阳县| 蓬溪县| 佛冈县| 桦南县| 樟树市| 渭源县| 吉水县| 宁阳县| 天台县| 宁夏| 濮阳市| 克拉玛依市| 元阳县| 高邮市| 肇源县| 灵台县| 建阳市| 福泉市| 莫力|