详解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学习笔记之入门篇
Apr 16 NodeJs
Nodejs全局安装和本地安装的不同之处
Jul 04 NodeJs
nodejs微信公众号支付开发
Sep 19 NodeJs
详解Nodejs的timers模块
Dec 22 NodeJs
图片上传之FileAPI与NodeJs
Jan 24 NodeJs
详解nodejs微信公众号开发——2.自动回复
Apr 10 NodeJs
Nodejs 发布自己的npm包并制作成命令行工具的实例讲解
May 15 NodeJs
nodejs中request库使用HTTPS代理的方法
Apr 30 NodeJs
通过Nodejs搭建网站简单实现注册登录流程
Jun 14 NodeJs
搭建一个nodejs脚手架的方法步骤
Jun 28 NodeJs
linux 下以二进制的方式安装 nodejs
Feb 12 NodeJs
NodeJS模块Buffer原理及使用方法解析
Nov 11 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
【动漫杂谈】关于《请在T台上微笑》
2020/03/03 日漫
详解PHP中strlen和mb_strlen函数的区别
2014/03/07 PHP
Smarty局部缓存的几种方法简介
2014/06/17 PHP
php使用ereg验证文件上传的方法
2014/12/16 PHP
PHP编程获取各个时间段具体时间的方法
2017/05/26 PHP
使用jquery动态加载javascript以减少服务器压力
2012/10/29 Javascript
去掉gridPanel表头全选框的小例子
2013/07/18 Javascript
查询json的数据结构的8种方式简介
2014/03/10 Javascript
JS中自定义定时器让它在某一时刻执行
2014/09/02 Javascript
DOM基础教程之使用DOM控制表格
2015/01/20 Javascript
JS实现的跨浏览器解析XML文件实例
2016/06/21 Javascript
jquery实现下拉框左右选择功能
2017/02/21 Javascript
详解node服务器中打开html文件的两种方法
2017/09/18 Javascript
Canvas实现微信红包照片效果
2018/08/21 Javascript
基于html+css+js实现简易计算器代码实例
2020/02/28 Javascript
python使用PythonMagick将jpg图片转换成ico图片的方法
2015/03/26 Python
Python统计日志中每个IP出现次数的方法
2015/07/06 Python
Python操作MySQL数据库9个实用实例
2015/12/11 Python
Python学习小技巧总结
2018/06/10 Python
python实现画五角星和螺旋线的示例
2019/01/20 Python
浅谈PySpark SQL 相关知识介绍
2019/06/14 Python
python实现遍历文件夹图片并重命名
2020/03/23 Python
python中_del_还原数据的方法
2020/12/09 Python
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
2016/12/20 HTML / CSS
Pure Collection美国官网:来自英国羊绒专家的奢华羊绒
2017/11/19 全球购物
厨师岗位职责
2013/11/12 职场文书
市场营销方案范文
2014/03/11 职场文书
学员自我鉴定
2014/03/19 职场文书
元宵节晚会主持人串词
2014/03/25 职场文书
病人写给医生的感谢信
2015/01/23 职场文书
民主评议党员个人自我评价
2015/03/03 职场文书
2015年幼儿园安全工作总结
2015/05/12 职场文书
2015年学校图书室工作总结
2015/05/19 职场文书
2016年五四青年节校园广播稿
2015/12/17 职场文书
2016护理专业求职自荐书
2016/01/28 职场文书
关于html选择框创建占位符的问题
2021/06/09 HTML / CSS