详解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服务器(4):路由
Dec 18 NodeJs
nodejs爬虫抓取数据之编码问题
Jul 03 NodeJs
Nodejs如何复制文件
Mar 09 NodeJs
Nodejs多站点切换Htpps协议详解及简单实例
Feb 23 NodeJs
nodejs中使用HTTP分块响应和定时器示例代码
Mar 19 NodeJs
详解nodejs中的process进程
Mar 19 NodeJs
详解Nodejs之npm&amp;package.json
Jun 15 NodeJs
nodejs中sleep功能实现暂停几秒的方法
Jul 12 NodeJs
NodeJS收发GET和POST请求的示例代码
Aug 25 NodeJs
nodejs简单实现TCP服务器端和客户端的聊天功能示例
Jan 04 NodeJs
通过nodejs 服务器读取HTML文件渲染到页面的方法
May 17 NodeJs
用Electron写个带界面的nodejs爬虫的实现方法
Jan 29 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桌面中心(三) 修改数据库
2007/03/11 PHP
ThinkPHP3.1的Widget新用法
2014/06/19 PHP
ThinkPHP分页实例
2014/10/15 PHP
win平台安装配置Nginx+php+mysql 环境
2016/01/12 PHP
php输出图像的方法实例分析
2017/02/16 PHP
实例:用 JavaScript 来操作字符串(一些字符串函数)
2007/02/15 Javascript
xheditor与validate插件冲突的解决方案
2010/04/15 Javascript
深入理解JavaScript系列(13) This? Yes,this!
2012/01/18 Javascript
javascript中的delete使用详解
2013/04/11 Javascript
如何正确使用javascript 来进行我们的程序开发
2014/06/23 Javascript
jquery 取子节点及当前节点属性值的方法
2014/08/24 Javascript
Bootstrap每天必学之简单入门
2015/11/19 Javascript
JavaScript实现弹窗效果代码分析
2017/03/09 Javascript
详谈AngularJs 控制器、数据绑定、作用域
2017/07/09 Javascript
javascript流程控制语句集合
2017/09/18 Javascript
React Native预设占位placeholder的使用
2017/09/28 Javascript
vue双花括号的使用方法 附练习题
2017/11/07 Javascript
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
2018/12/12 Javascript
javascript对HTML字符转义与反转义
2018/12/13 Javascript
webpack4.x下babel的安装、配置及使用详解
2019/03/07 Javascript
鸿蒙系统中的 JS 开发框架
2020/09/18 Javascript
[02:48]DOTA2超级联赛专访海涛:你们的选择没有错
2013/06/07 DOTA
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
python 读取excel文件生成sql文件实例详解
2017/05/12 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
2018/06/01 Python
利用python库在局域网内传输文件的方法
2018/06/04 Python
Mixbook加拿大:照片书,照片卡,剪贴簿,年历和日历
2017/02/21 全球购物
自我评价怎么写正确呢?
2013/12/02 职场文书
2014年上半年工作自我评价
2014/01/18 职场文书
市场部经理岗位职责
2014/04/10 职场文书
公司承诺书格式
2014/05/21 职场文书
祖国在我心中演讲稿200字
2014/08/28 职场文书
单位委托书怎么写
2014/09/21 职场文书
2015年班主任德育工作总结
2015/05/21 职场文书
html5中sharedWorker实现多页面通信的示例代码
2021/05/07 Javascript
MySQL数据库查询之多表查询总结
2022/08/05 MySQL