node.js mongoose 插件
来源:互联网 发布:sql server数据类型 编辑:程序博客网 时间:2024/06/06 07:28
mongoose简介
mongoose是node.js上一个mongodb的ODM(Object Data Model)插件。MongoDB对于插入到collection的document没有限制,任何document可以存放到任意的collection中,维护collection数据结构的统一需要我们自己去做。Mongoose组件可以进行object document mapping,利用Schema定义每个collection的数据结构。也可以进行object relational mapping(ORM)为MongoDB的操作添加关系数据库的特性。
利用Schema定义collection数据结构
var mongoose=require("mongoose");var Schema=mongoose.Schema;require('mongoose-currency').loadType(mongoose);//currency类型 https://www.npmjs.com/package/mongoose-currency//输出可以控制精度,如按两位小数输出 *.price.toFixed(2) var Currency=mongoose.Types.Currency;//设置数据类型等信息,可以进行数据校验var weapenSchema=new Schema({ name:{ type:String, required:true, }, label:{ type:String, required:true }, price:{ type:Currency, default:"" }, description:{ type:String, default:"" }},{ timestamps:true});var heroSchema= new Schema({ name:{ type:String, required:true, unique:true }, nickname:{ type:String, default:"" }, shengong:{ type:String, default:"" }, description:{ type:String, default:"" }, //在一个Schema中嵌入另一个Schema, weapen:weapenSchema},{ //设置时间戳 timestamps:true});var Heros=mongoose.model('heros',heroSchema);module.exports=Heros;
使用mongoose插入数据
//加载模块 var mongoose=require('mongoose'),assert =require('assert');var Heros=require('./models/heros');//连接MongoDBvar url='mongodb://localhost:27017/mongoExp';mongoose.connect(url);var db=mongoose.connection;db.on('error',console.error.bind(console,'connection error'));db.once('open',function () { console.log("成功打开英雄谱!"); //创建新的Hero var newHero=Heros({ name:"李寻欢", nickname:"小李探花", shengong:"小李飞刀", description:"飞刀一出,例不虚发", weapen: { name:"飞刀", label:"暗器", price:"1.5", description:"大冶铁匠花三个时辰打好的普通飞刀" } }); //将新的hero存入数据库 newHero.save(function (err) { if(err) throw err; console.log('李寻欢录入英雄谱'); Heros.find({},function (err,heros) { if(err) throw err; console.log(heros); //删除collection db.collection('heros').drop(function (){ db.close(); }); }); });});
运行mogoose.js
node mongoose.js成功打开英雄谱!李寻欢录入英雄谱[ { nickname: '小李探花', shengong: '小李飞刀', description: '飞刀一出,例不虚发', __v: 0, weapen: { price: 150, description: '大冶铁匠花三个时辰打好的普通飞刀', _id: 57139616f8cff40741e7882a, label: '暗器', name: '飞刀', createdAt: Sun Apr 17 2016 21:56:38 GMT+0800 (CST), updatedAt: Sun Apr 17 2016 21:56:38 GMT+0800 (CST) }, name: '李寻欢', createdAt: Sun Apr 17 2016 21:56:38 GMT+0800 (CST), updatedAt: Sun Apr 17 2016 21:56:38 GMT+0800 (CST), _id: 57139616f8cff40741e78829 } ]
1 0
- node.js mongoose 插件
- Node.js进阶のMongoose
- Node.js--Mongoose使用进阶
- Node.js + mongoose + mongodb 学习笔记
- node.js下mongoose简单操作实例
- node.js下mongoose简单操作实例
- node.js下mongoose简单操作实例
- Node.js中的Mongoose实用笔记
- node.js 调用 mongoose 的 aggregate 函数
- 【Node.js】mongoose教程01--工程搭建
- 【Node.js】mongoose教程04--存储
- 【Node.js】mongoose教程05--查询
- 【Node.js】mongoose教程06--排序
- 【Node.js】mongoose教程08--更新
- 【Node.js】mongoose教程09--删除
- node.js下mongoose简单操作实例
- mongoose - 让node.js高效操作mongodb
- Node.js结合mongoose操作MongoDB
- JSTL <fmt:formatNumber>
- hadoop支持的数据类型
- Python 练习实例32
- java学习笔记(2)基本数据类型对象包装类
- 树莓派搭建Openvpn(一)
- node.js mongoose 插件
- rsync安全配置
- xcode6创建empty application
- 【matlab】:matlab做的图片关联性识别算法
- 自定义GridView在展示Item时发生错位!
- 王坚清华夜话:未来不是阿里和谷歌的竞争 而是清华和斯坦福的竞争
- UVA 1619Feel Good 感觉不错 迭代法 (2005 NE)
- ACM is my refuge
- J2EE