详解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(一)--- Node.js简介及安装开发环境
May 20 NodeJs
NodeJS Express框架中处理404页面一个方式
May 28 NodeJs
nodejs中实现sleep功能实例
Mar 24 NodeJs
学习 NodeJS 第八天:Socket 通讯实例
Dec 21 NodeJs
nodejs入门教程六:express模块用法示例
Apr 24 NodeJs
mac下的nodejs环境安装的步骤
May 24 NodeJs
nodejs+mongodb+vue前后台配置ueditor的示例代码
Jan 02 NodeJs
Linux Centos7.2下安装nodejs&amp;npm配置全局路径的教程
May 15 NodeJs
nodejs前端模板引擎swig入门详解
May 15 NodeJs
详解nodejs 开发企业微信第三方应用入门教程
Mar 12 NodeJs
纯异步nodejs文件夹(目录)复制功能
Sep 03 NodeJs
nodejs制作小爬虫功能示例
Feb 24 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
PHP4中实现动态代理
2006/10/09 PHP
php中的时间显示
2007/01/18 PHP
PHP常用开发函数解析之数组篇[未完结]
2012/07/30 PHP
php中通过curl检测页面是否被百度收录
2013/09/27 PHP
php禁止某ip或ip地址段访问的方法
2015/02/25 PHP
Yii2.0预定义的别名功能小结
2016/07/04 PHP
PHP的JSON封装、转变及输出操作示例
2019/09/27 PHP
使用jquery插件实现图片延迟加载技术详细说明
2011/03/12 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
2013/10/11 Javascript
ExtJS 刷新后如何默认选中刷新前最后一次选中的节点
2014/04/03 Javascript
javascript控制在光标位置插入文字适合表情的插入
2014/06/09 Javascript
JS基于FileSystemObject创建一个指定路径的TXT文本文件
2015/08/05 Javascript
Javascript中的Prototype到底是什么
2016/02/16 Javascript
JavaScript之事件委托实例(附原生js和jQuery代码)
2017/07/22 jQuery
简单快速的实现js计算器功能
2017/08/17 Javascript
vue二级菜单导航点击选中事件的方法
2018/09/12 Javascript
jQuery实现模拟搜索引擎的智能提示功能简单示例
2019/01/27 jQuery
JavaScript实现简单的图片切换功能(实例代码)
2020/04/10 Javascript
Python简单连接MongoDB数据库的方法
2016/03/15 Python
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
Python批量更改文件名的实现方法
2017/10/29 Python
Django中cookie的基本使用方法示例
2018/02/03 Python
python获取中文字符串长度的方法
2018/11/14 Python
pygame实现非图片按钮效果
2019/10/29 Python
python函数定义和调用过程详解
2020/02/09 Python
Python datetime 格式化 明天,昨天实例
2020/03/02 Python
Django def clean()函数对表单中的数据进行验证操作
2020/07/09 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
2020/11/27 Python
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
Nobody Denim官网:购买高级女士牛仔裤
2021/03/15 全球购物
银行会计业务的个人自我评价
2013/11/02 职场文书
一年级学生评语
2014/04/23 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
助学感谢信范文
2015/01/21 职场文书
运动会加油稿
2015/07/22 职场文书
Redis可视化客户端小结
2021/06/10 Redis