mongodb?
mongoose?
mongoose其实就是对mongoDB的封装,类似于jquery与js的关系。是mongoDB的一个对象模型工具,是基于node-mongodb-native开发的mongoDB的nodejs驱动,可以在异步的环境下执行。同时它也是针对mongoDB操作的一个对象模型库,封装了mongoDB对文档的一些增删改查等常用方法,让nodejs操作mongoDB数据库变得更加容易。
总而言之,是用于连接nodeJS与 mongoDB。
新建项目文件夹test
npm init
生成package.json文件npm install mongoose --save-dev
安装mongoose
新建mongoose.js 写下面的代码
运行/** * 连接数据库 */ var mongoose = require('mongoose') // 引入 mongoose var url = "mongodb://localhost:27017/myapp"; // 本地数据库地址,myapp为数据库 mongoose.connect(url); // connect() 返回一个状态待定(pending)的连接,可以用来判断连接成功或失败 var db = mongoose.connection; db.on('error', console.error.bind(console, '连接失败')); db.once('open', function() { console.log("成功连接到 "+url) });
node mongoose
显示:成功连接到 mongodb://localhost:27017/myapp- 建立Schema。在Mongoose 里,一切都始于Schema
mongoose.Schema方法用来定义数据集的格式(schema)
mongoose.model方法将格式分配给指定的数据集。var userSchema = mongoose.Schema({ name:String, age:Number }) //我们得到了一个带有 String 类型 name 属性的 schema。接着我们需要把这个 schema 编译成一个 Model //将schema编译为model构造函数,mydatas为集合名 var User = mongoose.model('mydatas', userSchema);
这样,Schema就建立完成,接下来使用mongoose,来进行数据的增删改查:
增删改查
- 增
var newUser = new User({name: "hello1",age:20}); /** * 插入数据 */ newUser.save(function(err){ if(err){ return; } console.log("添加成功!") })
- 删
/** * 删除数据(用remove时会提示用deleteOne, deleteMany, or bulkWrite instead代替) */ User.deleteMany({name:"linda"},function(err){ if(err){ return; } })
- 改
/** * 修改 * Model.update(conditions, doc, [options], [callback]) * conditions:查询条件;doc:需要修改的数据,不能修改主键(_id);options:控制选项;callback:回调函数,返回的是受影响的行数。 */ User.updateMany({name:"anna"},{name:"alice"},function(err,user){ if(err){ return; } })
- 查
/* *查询数据 *Model.find(conditions, [projection], [options], [callback]) *conditions:查询条件;projection:控制返回的字段;options:控制选项;callback:回调函数。 */ User.findOne({name:"anna"},function(err,user){ if(err){ return ; } console.log(user) //打印整条数据 });