說明

成都創新互聯是一家專業提供鄯善企業網站建設,專注與成都網站設計、成都網站建設、H5頁面制作、小程序制作等業務。10年已為鄯善眾多企業、政府機構等服務。創新互聯專業網絡公司優惠進行中。
大家都知道在MongoDB 中獲取數據,不管使用回調函數還是Promise又或者generate 語法最后得到都是mongoose.Query對象,不能直接操作如同普通對象一樣得到單行數據。還有就是時間格式化問題,見下面。
下面示例默認使用co 和 es6 */yield 語法,當然也可以使用async/await
1. 安裝mongoose
$ npm install mongoose co moment --save
說明:
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' }總結
以上就是這篇文章的全部內容,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對創新互聯的支持。
本文名稱:node.js利用mongoose獲取mongodb數據的格式化問題詳解
文章來源:http://www.yijiale78.com/article46/ihohhg.html
成都網站建設公司_創新互聯,為您提供品牌網站建設、關鍵詞優化、全網營銷推廣、建站公司、網站收錄、網站設計公司
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯