说明在mongodb中获取数据,无论是使用回调函数,Promise还是generate语法,最后都会得到mongoose.Query对象,不能直接操作像普通对象一样获取单行数据。还有时间格式的问题,见下文。以下示例默认使用co和es6*/yield语法。当然你也可以使用async/await1。installmongoose$npminstallmongoosecomoment--save说明:mongoose:mongodb的nodejs数据库驱动co:一个自动执行的生成函数容器moment:时间格式2.处理数据如下://省略链接数据库,详见文档constmongoose=require('mongoose')constco=require('co')constSchema=mongoose.SchemaconstPersonSchema=newSchema({name:String,age:String,createAt:{type:Date,默认值:Date.now,get:v=>moment(v).format('YYYY-MM-DDHH:mm')}})constPersonModel=mongoose.model('Person',PersonSchema)//创建模型constPerson=newPersonModel()//创建文档对象co(function*(){letperson=yieldPerson.findOne({name:'zhengsan'})//这里person是一个mongoose.Query对象//这里直接使用person是一个对象可以get{name,type,createAt}//但是你不能操作这三个,除非你一个一个复制到另一个对象,问题就在这里?})()这里可以通过Object.keys得到如下数据(person):['$__','isNew','errors','_doc','$init']3。通过查询mongoose文档获取常见对象,最终得到解决方案,可以很方便的格式化://按照上面的代码letperson=yieldPerson.findOne({name:'zhangsan'})person=person.toJSON({getters:true})//此时的Person对象//{name:'zhangsan',age:32,createAt:'2017-02-0312:30'}如果文章有误,请指正...
