详解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中启用ECMAScript 6小结(windos以及Linux)
Jul 15 NodeJs
轻松创建nodejs服务器(7):阻塞操作的实现
Dec 18 NodeJs
NodeJS制作爬虫全过程
Dec 22 NodeJs
图片上传之FileAPI与NodeJs
Jan 24 NodeJs
nodejs+express实现文件上传下载管理网站
Mar 15 NodeJs
nodejs multer实现文件上传与下载
May 10 NodeJs
基于nodejs 的多页面爬虫实例代码
May 31 NodeJs
Nodejs调用Dll模块的方法
Sep 17 NodeJs
Nodejs模块的调用操作实例分析
Dec 25 NodeJs
NodeJS 文件夹拷贝以及删除功能
Sep 03 NodeJs
分享五个Node.js开发的优秀实践 
Apr 07 NodeJs
使用 Koa + TS + ESLlint 搭建node服务器的过程详解
May 30 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版微信公众平台回复中文出现乱码问题的解决方法
2016/09/22 PHP
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
jquery中的sortable排序之后的保存状态的解决方法
2010/01/28 Javascript
jQuery.each()用法分享
2012/07/31 Javascript
用innerhtml提高页面打开速度的方法
2013/08/02 Javascript
在JavaScript中实现类的方式探讨
2013/08/28 Javascript
jquery ajax jsonp跨域调用实例代码
2013/12/11 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
jQuery EasyUi实战教程之布局篇
2016/01/26 Javascript
详解ES6中的let命令
2020/04/05 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
layer子层给父层页面元素赋值,以达到向父层页面传值的效果实例
2017/09/22 Javascript
koa-router源码学习小结
2018/09/07 Javascript
webpack3里使用uglifyjs压缩js时打包报错的解决
2018/12/13 Javascript
详解JavaScript栈内存与堆内存
2019/04/04 Javascript
webpack的pitching loader详解
2019/09/23 Javascript
Angular8引入百度Echarts进行图表分析的实现代码
2019/11/27 Javascript
Django1.7+python 2.78+pycharm配置mysql数据库教程
2014/11/18 Python
Python中用于转换字母为小写的lower()方法使用简介
2015/05/19 Python
python 网络爬虫初级实现代码
2016/02/27 Python
Python爬虫框架Scrapy常用命令总结
2018/07/26 Python
Python3.7 读取音频根据文件名生成脚本的代码
2020/04/07 Python
测绘工程本科生求职信
2013/10/10 职场文书
失业者真诚求职信范文
2013/12/25 职场文书
信用社员工先进事迹材料
2014/02/04 职场文书
初中英语演讲稿
2014/04/29 职场文书
大学第二课堂活动总结
2014/07/08 职场文书
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
私人房屋买卖协议书
2014/10/04 职场文书
2014年企业团支部工作总结
2014/12/10 职场文书
2015出纳试用期工作总结
2014/12/12 职场文书
高中社区服务活动报告
2015/02/05 职场文书
高中运动会前导词
2015/07/20 职场文书
工作建议书范文
2019/07/08 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript
ElementUI实现el-form表单重置功能按钮
2021/07/21 Javascript