详解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 相关文章推荐
Windows系统下使用Sublime搭建nodejs环境
Apr 13 NodeJs
Nodejs实现批量下载妹纸图
May 28 NodeJs
详解Nodejs基于mongoose模块的增删改查的操作
Dec 21 NodeJs
详解nodejs 文本操作模块-fs模块(四)
Dec 22 NodeJs
nodejs使用express创建一个简单web应用
Mar 31 NodeJs
nodejs个人博客开发第三步 载入页面
Apr 12 NodeJs
详解如何在NodeJS项目中优雅的使用ES6
Apr 22 NodeJs
基于nodejs 的多页面爬虫实例代码
May 31 NodeJs
详解redis在nodejs中的应用
May 02 NodeJs
解决Nodejs全局安装模块后找不到命令的问题
May 15 NodeJs
深入理解NodeJS 多进程和集群
Oct 17 NodeJs
如何利用nodejs自动定时发送邮件提醒(超实用)
Dec 01 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
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
discuz的php防止sql注入函数
2011/01/17 PHP
smarty模板引擎中自定义函数的方法
2015/01/22 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
2020/04/13 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
2020/07/08 PHP
尽可能写&quot;友好&quot;的&quot;Javascript&quot;代码
2007/01/09 Javascript
javascript 读取xml,写入xml 实现代码
2009/07/10 Javascript
js跨域和ajax 跨域问题的实现思路
2009/09/05 Javascript
javascript中关于执行环境的杂谈
2011/08/14 Javascript
JavaScript获取当前日期是星期几的方法
2015/04/06 Javascript
浅谈JQuery+ajax+jsonp 跨域访问
2016/06/25 Javascript
Ajax实现不刷新取最新商品
2017/03/01 Javascript
AngularJS实现页面定时刷新
2017/03/14 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
2017/03/28 Javascript
js注册时输入合法性验证方法
2017/10/21 Javascript
vue表单数据交互提交演示教程
2019/11/13 Javascript
Nodejs使用archiver-zip-encrypted库加密压缩文件时报错(解决方案)
2019/11/18 NodeJs
常用python编程模板汇总
2016/02/12 Python
python 队列详解及实例代码
2016/10/18 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
2018/04/10 Python
pycharm安装和首次使用教程
2018/08/27 Python
Python实现KNN(K-近邻)算法的示例代码
2019/03/05 Python
Python3实现的判断环形链表算法示例
2019/03/07 Python
Windows平台Python编程必会模块之pywin32介绍
2019/10/01 Python
python 的numpy库中的mean()函数用法介绍
2020/03/03 Python
Python环境管理virtualenv&amp;virtualenvwrapper的配置详解
2020/07/01 Python
Django实现文章详情页面跳转代码实例
2020/09/16 Python
python 还原梯度下降算法实现一维线性回归
2020/10/22 Python
主治医师岗位职责
2013/12/10 职场文书
后勤部经理岗位职责
2014/02/23 职场文书
大学军训感言400字
2014/03/11 职场文书
南京导游词
2015/02/03 职场文书
社区端午节活动总结
2015/02/11 职场文书
教师工作能力自我评价
2015/03/04 职场文书
《1942》观后感
2015/06/08 职场文书
学校中层领导培训心得体会
2016/01/11 职场文书