详解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的require模块(文件模块/核心模块)及路径介绍
Jan 14 NodeJs
利用NodeJS的子进程(child_process)调用系统命令的方法分享
Jun 05 NodeJs
nodejs获取本机内网和外网ip地址的实现代码
Jun 01 NodeJs
nodejs npm package.json中文文档
Sep 04 NodeJs
浅谈Nodejs观察者模式
Oct 13 NodeJs
实例详解Nodejs 保存 payload 发送过来的文件
Jan 14 NodeJs
NodeJS仿WebApi路由示例
Feb 28 NodeJs
nodejs创建简易web服务器与文件读写的实例
Sep 07 NodeJs
nodejs实现的连接MySQL数据库功能示例
Jan 25 NodeJs
Nodejs处理异常操作示例
Dec 25 NodeJs
nodejs实现日志读取、日志查找及日志刷新的方法分析
May 20 NodeJs
分享五个Node.js开发的优秀实践 
Apr 07 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/01/04 PHP
PDO实现学生管理系统
2020/03/21 PHP
js实现的折叠导航示例
2013/11/29 Javascript
轻松创建nodejs服务器(9):实现非阻塞操作
2014/12/18 NodeJs
Js数组排序函数sort()介绍
2015/06/08 Javascript
JavaScript变量的作用域全解析
2015/08/14 Javascript
jquery图片倾斜层叠切换特效代码分享
2015/08/27 Javascript
基于JavaScript将表单序列化类型的数据转化成对象的处理(允许对象中包含对象)
2015/12/28 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
2016/05/27 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
深入理解javascript函数参数与闭包
2016/12/12 Javascript
Node.js 中exports 和 module.exports 的区别
2017/03/14 Javascript
微信小程序开发之IOS和Android兼容的问题
2017/09/26 Javascript
JS和JQuery实现雪花飘落效果
2017/11/30 jQuery
angular 服务的单例模式(依赖注入模式下)详解
2018/10/22 Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
2019/04/24 Javascript
Promise扫盲贴
2019/06/24 Javascript
js实现图片上传即时显示效果
2019/09/30 Javascript
详细讲解Python中的文件I/O操作
2015/05/24 Python
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
2016/09/21 Python
python实现k-means聚类算法
2018/02/23 Python
python判断列表的连续数字范围并分块的方法
2018/11/16 Python
pygame实现五子棋游戏
2019/10/29 Python
python二元表达式用法
2019/12/04 Python
Python爬虫设置ip代理过程解析
2020/07/20 Python
python实现快速文件格式批量转换的方法
2020/10/16 Python
PyQt实现计数器的方法示例
2021/01/18 Python
纯css3制作网站后台管理面板
2014/12/30 HTML / CSS
html+css实现自定义图片上传按钮功能
2019/09/04 HTML / CSS
Lulu Guinness露露·吉尼斯官网:红唇包
2019/02/03 全球购物
夏洛特的网观后感
2015/06/15 职场文书
SpringBoot 集成Redis 过程
2021/06/02 Redis
MySql 8.0及对应驱动包匹配的注意点说明
2021/06/23 MySQL
vue中this.$http.post()跨域和请求参数丢失的解决
2022/04/08 Vue.js
HTML CSS 一个标签实现带动画的抖音LOGO
2022/04/26 HTML / CSS