资讯专栏INFORMATION COLUMN

nodejs使用mongoose 获取mongodb 数据格式化问题

Ilikewhite / 601人阅读

摘要:说明在中获取数据,不管使用回调函数还是又或者语法最后得到都是对象,不能直接操作如同普通对象一样得到单行数据。还有就是时间格式化问题,见下面。

说明

在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" }

文章不对之处,欢迎指正...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/19103.html

相关文章

  • nodejs使用mongoose 获取mongodb 数据式化问题

    摘要:说明在中获取数据,不管使用回调函数还是又或者语法最后得到都是对象,不能直接操作如同普通对象一样得到单行数据。还有就是时间格式化问题,见下面。 说明 在mongodb 中获取数据,不管使用回调函数还是Promise又或者generate 语法最后得到都是mongoose.Query对象,不能直接操作如同普通对象一样得到单行数据。还有就是时间格式化问题,见下面。 下面示例默认使用co 和...

    Tamic 评论0 收藏0
  • 手把手教你开发nodejs微博网站-连接数据

    摘要:连接数据库引子博客肯定是以用户为中心,包括用户的注册,用户的登录,用户发表留言,对留言进行评价等等功能,所以,自然离不开数据库。概念解析在中基本的概念是文档集合数据库。这两种方式连接都需要,或者主机名字,数据库名字,端口号,配置项等。 连接数据库 引子 博客肯定是以用户为中心,包括用户的注册,用户的登录,用户发表留言,对留言进行评价等等功能,所以,自然离不开数据库。 MongoDB M...

    waterc 评论0 收藏0
  • Nodejs Express 连接Mongodb

    摘要:安装下载设置环境变量将的安装目录的写入环境变量启动服务控制台输入这后面的路径便是数据集合的路径服务启动成功提示监听的是端口,打开浏览器输入,则会看到如下提示如果嫌每次输入命令打开服务麻烦的话可以写成一个批处理文件文件,写上代码安装模 安装MongoDB 下载mongodb 设置环境变量 将mongodb 的 安装目录的 E:Program FilesMongoDBServer3.4i...

    simon_chen 评论0 收藏0
  • Nodejs Express 连接Mongodb

    摘要:安装下载设置环境变量将的安装目录的写入环境变量启动服务控制台输入这后面的路径便是数据集合的路径服务启动成功提示监听的是端口,打开浏览器输入,则会看到如下提示如果嫌每次输入命令打开服务麻烦的话可以写成一个批处理文件文件,写上代码安装模 安装MongoDB 下载mongodb 设置环境变量 将mongodb 的 安装目录的 E:Program FilesMongoDBServer3.4i...

    madthumb 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<