详解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学习笔记之Http模块
Jan 13 NodeJs
Highcharts+NodeJS搭建数据可视化平台示例
Jan 01 NodeJs
详解nodejs中exports和module.exports的区别
Feb 17 NodeJs
nodejs学习笔记之路由
Mar 27 NodeJs
详解Nodejs之npm&amp;package.json
Jun 15 NodeJs
Nodejs中的JWT和Session的使用
Aug 21 NodeJs
nodejs基础之常用工具模块util用法分析
Dec 26 NodeJs
Nodejs封装类似express框架的路由实例详解
Jan 05 NodeJs
linux 下以二进制的方式安装 nodejs
Feb 12 NodeJs
nodeJS与MySQL实现分页数据以及倒序数据
Jun 05 NodeJs
nodejs中内置模块fs,path常见的用法说明
Nov 07 NodeJs
nodejs+express最简易的连接数据库的方法
Dec 23 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
WordPress中获取指定分类及其子分类下的文章数目
2015/12/31 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
Laravel框架Eloquent ORM删除数据操作示例
2019/12/03 PHP
删除重复数据的算法
2006/11/23 Javascript
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
jQuery中复合属性选择器用法实例
2014/12/31 Javascript
jquery右下角自动弹出可关闭的广告层
2015/05/08 Javascript
EasyUi combotree 实现动态加载树节点
2016/04/01 Javascript
JS hashMap实例详解
2016/05/26 Javascript
利用jquery如何从json中读取数据追加到html中
2017/12/01 jQuery
深入理解JavaScript和TypeScript中的class
2018/04/22 Javascript
vue3.0 CLI - 2.4 - 新组件 Forms.vue 中学习表单
2018/09/14 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
2019/05/23 jQuery
JavaScript函数Call、Apply原理实例解析
2020/02/17 Javascript
[02:38]2018DOTA2亚洲邀请赛赛前采访-VGJ.T
2018/04/03 DOTA
[01:18:35]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第一场 1月29日
2021/03/11 DOTA
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
Python爬虫包BeautifulSoup异常处理(二)
2018/06/17 Python
python实现微信每日一句自动发送给喜欢的人
2019/04/29 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
2021/02/01 Python
Tod’s英国官方网站:意大利奢华手工制作手袋和鞋履
2019/03/15 全球购物
微软巴西官方网站:Microsoft Brasil
2019/09/26 全球购物
意大利网上药房:Farmacia 33
2020/01/27 全球购物
外语系毕业生自荐信范文
2013/12/16 职场文书
项目计划书范文
2014/01/09 职场文书
特教教师先进事迹
2014/05/21 职场文书
团结演讲稿范文
2014/05/23 职场文书
学习群众路线的心得体会
2014/11/05 职场文书
怎么写工作检讨书
2014/11/16 职场文书
2014年图书管理员工作总结
2014/12/01 职场文书
先进教师事迹材料
2014/12/16 职场文书
幼儿园班级工作总结2015
2015/05/25 职场文书
安全教育主题班会教案
2015/08/12 职场文书
高中化学教学反思
2016/02/22 职场文书
2019学生会干事辞职信
2019/06/27 职场文书