全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

node.js利用mongoose获取mongodb数据的格式化问题详解

说明

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

总结

以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。


# nodejs  # mongoose  # node.js  # mongodb  # mongoose教程  # node.js连接mongoose数据库方法详解  # node.js使用mongoose操作数据库实现购物车的增、删、改、查功能示例  # Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法  # Node.js中使用mongoose操作mongodb数据库的方法  # Node.js的MongoDB驱动Mongoose基本使用教程  # 安装使用Mongoose配合Node.js操作MongoDB的基础教程  # node.js mongoose index索引操作  # 文档  # 都是  # 是一个  # 大家都  # 有一定  # 可以使用  # 另外一个  # 这篇文章  # 谢谢大家  # 可以得到  # 这三个  # 不能够  # 解决办法  # 回调  # 就在这里  # 有疑问  # install  # PersonSchema  # String  # brush 


相关文章: 公司网站的制作公司,企业网站制作基本流程有哪些?  台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?  英语简历制作免费网站推荐,如何将简历翻译成英文?  行程制作网站有哪些,第三方机票电子行程单怎么开?  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  如何在阿里云域名上完成建站全流程?  ,巨量百应是干嘛的?  如何打造高效商业网站?建站目的决定转化率  如何在自有机房高效搭建专业网站?  建站主机如何选?性能与价格怎样平衡?  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  哈尔滨网站建设策划,哈尔滨电工证查询网站?  在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  PHP 500报错的快速解决方法  免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  清除minerd进程的简单方法  如何通过.red域名打造高辨识度品牌网站?  在线教育网站制作平台,山西立德教育官网?  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  如何通过西部数码建站助手快速创建专业网站?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  建站之星导航如何优化提升用户体验?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  北京制作网站的公司,北京铁路集团官方网站?  如何在服务器上三步完成建站并提升流量?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  已有域名和空间如何快速搭建网站?  已有域名和空间,如何快速搭建网站?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  简单实现Android文件上传  制作网站的过程怎么写,用凡科建站如何制作自己的网站?  建站之星后台密码如何安全设置与找回?  如何在香港免费服务器上快速搭建网站?  如何选择高效稳定的ISP建站解决方案?  如何挑选高效建站主机与优质域名?  如何用好域名打造高点击率的自主建站?  建站之星展会模版如何一键下载生成?  网站制作壁纸教程视频,电脑壁纸网站?  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  大连 网站制作,大连天途有线官网?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  XML的“混合内容”是什么 怎么用DTD或XSD定义  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  实惠建站价格推荐:2025年高性价比自助建站套餐解析  ,网站推广常用方法?  微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。