首页 > 代码库 > MongoDB学习之mongoose
MongoDB学习之mongoose
MongoDB介绍:
MongoDB是基于Javascript语言的数据库,存储格式是JSON,而Node也是基于JavaScript的环境(库),所以node和mongoDB的搭配能减少因为数据转换带来的时间空间开销。
Mongoose介绍:
是MongoDB的一个对象模型工具,它将数据库中的数据转换为JavaScript对象以供你在应用中使用,封装了MongoDB对文档的的一些增删改查等常用方法,
让NodeJS操作Mongodb数据库变得更加灵活简单。
预备:
一定要先开启mongodb服务,进入mongodb\bin\,执行mongod --dbpath d:\data
d:\data是存储数据的地方,通常位于mongodb安装的根目录下。
第一步,在项目里安装mongoose,并引入
// 安装
cnpm install mongoose --save
// 引入
const mongoose = require(‘mongoose‘);
第二步,连接数据库
// 连接本地的数据库
let db = mongoose.createConnection(‘mongodb://localhost/testmongoose‘);
接着:
// 设置数据类型
let monSchema = new mongoose.Schema({ name: { type: String, default: ‘username‘ }, age: { type: Number }, gender: { type: String, default: ‘女‘ } });
// 选择集合
let MonModel = db.model(‘user‘, monSchema);
// 模拟一个数据集
let content = {name: ‘nick‘, age: 23, gender: ‘男‘};
// 实例化对象并插入数据
let monInsert = new MonModel(content);
// 保存并关闭连接
monInsert.save((err) => { if(err) { console.log(err); } else { console.log(‘成功插入数据‘); } // 关闭数据库 db.close(); });
执行这个node文件,插入数据成功!
叮叮~~数据库里面有数据啦!
mongo.js完整代码:
// 引入模块 const mongoose = require(‘mongoose‘); // 连接数据库 let db = mongoose.createConnection(‘mongodb://localhost/testmongoose‘); // 设置数据类型 let monSchema = new mongoose.Schema({ name: { type: String, default: ‘username‘ }, age: { type: Number }, gender: { type: String, default: ‘女‘ } }); // 选择集合 let MonModel = db.model(‘user‘, monSchema); // 数据集 let content = {name: ‘Nick‘, age: 23, gender: ‘男‘}; // 实例化对象并插入数据 let monInsert = new MonModel(content); monInsert.save((err) => { if(err) { console.log(err); } else { console.log(‘成功插入数据‘); } // 关闭数据库 db.close(); });
增删改查完整代码:
// 引入模块 const mongoose = require(‘mongoose‘); // 连接数据库 let db = mongoose.createConnection(‘mongodb://localhost/testmongoose‘); // 设置数据类型 let monSchema = new mongoose.Schema({ name: { type: String, default: ‘username‘ }, age: { type: Number }, gender: { type: String, default: ‘女‘ } }); // 选择集合 let MonModel = db.model(‘user‘, monSchema); // 插入数据 function insertData () { // 数据集 let content = {name: ‘Nick‘, age: 23, gender: ‘男‘}; // 实例化对象并插入数据 let monInsert = new MonModel(content); monInsert.save((err) => { if(err) { console.log(err); } else { console.log(‘成功插入数据‘); } // 关闭数据库 db.close(); }); } // 删除数据 function deleteData () { // 要删除的条件 let del = {name: ‘Nick‘}; MonModel.remove(del, (err, result) => { if(err) { console.log(err); } else { console.log(‘delete: ‘ + result); } // 关闭数据库 db.close(); }); } // 修改数据 function updateData() { // 原数据字段值 let oldValue = http://www.mamicode.com/{name: ‘Nick‘}; // 单条件更新 let newData1 = {$set: {name: ‘风夏‘}}; // 多条件更新 let newData2 = {$set: {name: ‘风夏‘, gender: ‘女‘}}; MonModel.update(oldValue, newData2, (err, result) => { if(err) { console.log(err); } else { console.log(‘update‘); } // 关闭数据库 db.close(); }); } // 查询数据 function findData() { // 要查询的字段 let content = {name: ‘风夏‘}; let field = {name: 1, age:1, gender:1}; MonModel.find(content, field, (err, result) => { if(err) { console.log(err); } else { console.log(result); } }); } //insertData(); //deleteData(); //updateData(); findData();
MongoDB学习之mongoose