详解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 后缀名判断限制代码
Mar 31 NodeJs
nodejs文件操作模块FS(File System)常用函数简明总结
Jun 05 NodeJs
NodeJS学习笔记之网络编程
Aug 03 NodeJs
Nodejs如何复制文件
Mar 09 NodeJs
Nodejs获取网络数据并生成Excel表格
Mar 31 NodeJs
nodejs 的 session 简单使用
Jun 06 NodeJs
nodejs redis 发布订阅机制封装实现方法及实例代码
Dec 15 NodeJs
详解nodejs 文本操作模块-fs模块(三)
Dec 22 NodeJs
nodejs结合socket.io实现websocket通信功能的方法
Jan 12 NodeJs
nodejs实现的简单web服务器功能示例
Mar 15 NodeJs
详解Nodejs mongoose
Jun 10 NodeJs
详解Nodejs get获取远程服务器接口数据
Mar 26 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中const与define的应用区别
2013/06/18 PHP
提高PHP编程效率的方法
2013/11/07 PHP
php 在线导入mysql大数据程序
2015/06/11 PHP
PHP如何通过传引用的思想实现无限分类(代码简单)
2015/10/13 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
2019/01/15 PHP
图片动画横条广告带上下滚动的JS代码
2013/10/25 Javascript
JS取文本框中最小值的简单实例
2013/11/29 Javascript
JavaScript的字符串方法汇总
2016/07/31 Javascript
AngularJS使用ng-repeat指令实现下拉框
2016/08/23 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
2016/12/02 Javascript
jquery-file-upload 文件上传带进度条效果
2017/11/21 jQuery
JS实现留言板功能[楼层效果展示]
2017/12/27 Javascript
javascript少儿编程关于返回值的函数内容
2018/05/27 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
2018/09/03 jQuery
vue删除html内容的标签样式实例
2018/09/13 Javascript
jQuery实现简易QQ聊天框
2020/02/10 jQuery
vue $mount 和 el的区别说明
2020/09/11 Javascript
在实例中重学JavaScript事件循环
2020/12/03 Javascript
[01:55]2014DOTA2国际邀请赛 BBC正赛第一天总结
2014/07/10 DOTA
python3 pandas 读取MySQL数据和插入的实例
2018/04/20 Python
numpy.linalg.eig() 计算矩阵特征向量方式
2019/11/29 Python
pytorch 图像预处理之减去均值,除以方差的实例
2020/01/02 Python
在Mac中配置Python虚拟环境过程解析
2020/06/22 Python
Scrapy爬虫文件批量运行的实现
2020/09/30 Python
python 元组和列表的区别
2020/12/30 Python
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
美国在线印刷公司:PsPrint
2017/10/12 全球购物
Johnston & Murphy官网: 约翰斯顿·墨菲牛津总统鞋
2018/01/09 全球购物
文员个人求职自荐信
2013/09/21 职场文书
员工拓展培训方案
2014/02/15 职场文书
信息合作协议书
2014/10/09 职场文书
2014年科普工作总结
2014/12/06 职场文书
2015元旦家电促销活动策划方案
2014/12/09 职场文书
初三语文教学计划
2015/01/22 职场文书
Memcached介绍及php-memcache扩展安装
2021/04/01 PHP
python实现大文本文件分割成多个小文件
2021/04/20 Python