详解Nodejs基于mongoose模块的增删改查的操作


Posted in NodeJs onDecember 21, 2016

MongoDB

MongoDB是基于Javascript语言的数据库,存储格式是JSON,而Node也是基于JavaScript的环境(库),所以node和mongoDB的搭配能减少因为数据转换带来的时间空间开销。

Mongoose

是MongoDB的一个对象模型工具,它将数据库中的数据转换为JavaScript对象以供你在应用中使用,封装了MongoDB对文档的的一些增删改查等常用方法,让NodeJS操作Mongodb数据库变得更加灵活简单。

安装模块mongoose

npm install mongoose

[注意] mongoose模块依赖mongodb

npm常用命令

npm install <name> -g 将包安装到全局环境中

npm install <name> ?-save 安装的同时,将信息写入package.json中,便于后期维护查看

npm remove <name>移除

npm update <name>更新

npm root -g 查看全局的包安装路径 

npm -v 查看npm的版本

开启mongodb数据库

进入mongod所在目录 执行命令 ./mongod --dbpath=存放数据的位置

例1:./mongod --dbpath=../data/dbname

例2:./mongod --dbpath=../data/dbname --port 自定义端口号,默认27017(了解即可,不推荐使用,修改默认端口号后期维护麻烦)

插入数据

// 引入模块
var mongoose = require('mongoose');
// 连接数据库
var db = mongoose.createConnection('mongodb://127.0.0.1:27017/test');
// 设置数据类型
var monSchema = new mongooose.Schema({
 name:{type:String,default:"username"},
 age:{type:Number},
 sex:{type:String}
});
// 选择集合
var monModel = db.model('user',monSchema);
// 数据集
var content = {name:"Nick",age:23,sex:'男'};
// 实例化对象并插入数据
var monInsert = new monModel(content);
monInsert.save(function(err){
 if(err){
 console.log(err);
 }else{
 console.log('成功插入数据');
 }
 db.close();
});

删除数据

// 引入模块
var mongoose = require('mongoose');
// 连接数据库
var db = mongoose.createConnection('mongodb://127.0.0.1:27017/test');
// 设置数据类型
var monSchema = new mongooose.Schema({
 name:{type:String,default:"name"},
 age:{type:Number},
 sex:{type:String}
});
// 选择集合
var monModel = db.model('user',monSchema);
// 要删除的条件
var del = {name:"Nick"};

monModel.remove(del,function(err,result){
 if(err){
 console.log(err);
 }else{
 console.log("update");
 }
 db.close();
});

修改数据

// 引入模块
var mongoose = require('mongoose');
// 连接数据库
var db = mongoose.createConnection('mongodb://127.0.0.1:27017/test');
// cosole.log(db);
// 设置数据类型
var monSchema = new mongooose.Schema({
 name:{type:String,default:"name"},
 age:{type:Number},
 sex:{type:String}
});
// 选择集合
var monModel = db.model('user',monSchema);
// 原数据字段值
var oldValue = {name:"Nick"};
// 单条件更新
var newData1 = {$set:{name:"内容"}};
// 多条件更新
var newData2 = {$set:{name:"内容",age:2}};
monModel.update(oldValue,newData,function(err,result){
 if(err){
 console.log(err);
 }else{
 console.log("update");
 }
 db.close();
});

查询数据

// 引入模块
var mongoose = require('mongoose');
// 连接数据库
var db = mongoose.createConnection('mongodb://127.0.0.1:27017/test');
// cosole.log(db);
// 设置数据类型
var monSchema = new mongooose.Schema({
 name:{type:String,default:"name"},
 age:{type:Number},
 sex:{type:String}
});
// 选择集合
var monModel = db.model('user',monSchema);
var content = {name:"姓名2"};
var field = {name:1,age:1,sex:1};
monModel.find(content,field,function(err,result){
 if(err){
 console.log(err);
 }else{
 console.log(result);
 }
 db.close();
});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
nodejs中操作mysql数据库示例
Dec 20 NodeJs
Windows系统下使用Sublime搭建nodejs环境
Apr 13 NodeJs
Nodejs全局安装和本地安装的不同之处
Jul 04 NodeJs
详解nodejs 文本操作模块-fs模块(五)
Dec 23 NodeJs
nodejs进阶(6)—连接MySQL数据库示例
Jan 07 NodeJs
详解nodeJS之路径PATH模块
May 31 NodeJs
nodeJS微信分享
Dec 20 NodeJs
修改Nodejs内置的npm默认配置路径方法
May 13 NodeJs
nodejs中方法和模块用法示例
Dec 24 NodeJs
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
Apr 29 NodeJs
NodeJs实现简易WEB上传下载服务器
Aug 10 NodeJs
Nodejs文件上传、监听上传进度的代码
Mar 27 NodeJs
nodejs redis 发布订阅机制封装实现方法及实例代码
Dec 15 #NodeJs
解析NodeJs的调试方法
Dec 11 #NodeJs
nodejs连接mongodb数据库实现增删改查
Dec 01 #NodeJs
Nodejs 搭建简单的Web服务器详解及实例
Nov 30 #NodeJs
Nodejs下用submit提交表单提示cannot post错误的解决方法
Nov 21 #NodeJs
Nodejs进阶:核心模块net入门学习与实例讲解
Nov 21 #NodeJs
Nodejs进阶:基于express+multer的文件上传实例
Nov 21 #NodeJs
You might like
PHP isset empty函数相关面试题及解析
2020/12/11 PHP
JavaScript Undefined,Null类型和NaN值区别
2008/10/22 Javascript
编写高性能的JavaScript 脚本的加载与执行
2010/04/19 Javascript
网页加载时页面显示进度条加载完成之后显示网页内容
2012/12/23 Javascript
javascript面向对象包装类Class封装类库剖析
2013/01/24 Javascript
实现点击列表弹出列表索引的两种方式
2013/03/08 Javascript
js中typeof的用法汇总
2013/12/12 Javascript
JavaScript计算两个日期时间段内日期的方法
2015/03/16 Javascript
JS+CSS实现的拖动分页效果实例
2015/05/11 Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
2015/10/30 Javascript
全面了解JavaScript的数据类型转换
2016/07/01 Javascript
Javascript json object 与string 相互转换的简单实现
2016/09/27 Javascript
Vue.js -- 过滤器使用总结
2017/02/18 Javascript
AngularJS select加载数据选中默认值的方法
2018/02/28 Javascript
微信小程序实现图片上传放大预览删除代码
2020/06/28 Javascript
微信小程序实现页面监听自定义组件的触发事件
2020/11/01 Javascript
Python lambda和Python def区别分析
2014/11/30 Python
Python中规范定义命名空间的一些建议
2016/06/04 Python
CentOS7.3编译安装Python3.6.2的方法
2018/01/22 Python
python字符串中匹配数字的正则表达式
2019/07/03 Python
Django项目uwsgi+Nginx保姆级部署教程实现
2020/04/19 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
2020/04/30 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
2020/10/04 Python
Myprotein葡萄牙官方网站:英国优质运动营养品牌
2016/09/12 全球购物
Lululemon英国官网:加拿大瑜伽服装品牌
2019/01/14 全球购物
MyHeritage美国:家族史研究和DNA测试的领先服务
2019/05/27 全球购物
Solaris操作系统的线程机制
2012/12/23 面试题
Linux文件操作命令都有哪些
2015/02/27 面试题
车间副主任岗位职责
2013/12/24 职场文书
实习生的自我评价
2014/01/08 职场文书
学生喝酒检讨书
2014/02/06 职场文书
环保倡议书50字
2014/05/15 职场文书
软环境建设心得体会
2014/09/09 职场文书
期中考试复习计划
2015/01/19 职场文书
2015年社区平安建设工作总结
2015/05/13 职场文书
女性健康讲座主持词
2015/07/04 职场文书