详解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 相关文章推荐
ubuntu下安装nodejs以及升级的办法
May 08 NodeJs
nodejs 中模拟实现 emmiter 自定义事件
Feb 22 NodeJs
使用nodejs中httpProxy代理时候出现404异常的解决方法
Aug 15 NodeJs
nodeJs内存泄漏问题详解
Sep 05 NodeJs
nodejs使用express创建一个简单web应用
Mar 31 NodeJs
详解nodejs微信公众号开发——1.接入微信公众号
Apr 10 NodeJs
nodejs 如何手动实现服务器
Aug 20 NodeJs
nodejs require js文件入口,在package.json中指定默认入口main方法
Oct 10 NodeJs
NodeJs实现简单的爬虫功能案例分析
Dec 05 NodeJs
nodejs异步编程基础之回调函数用法分析
Dec 26 NodeJs
nodejs通过钉钉群机器人推送消息的实现代码
May 05 NodeJs
Nodejs实现微信分账的示例代码
Jan 19 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递归函数中使用return的注意事项
2014/01/17 PHP
Symfony2在Nginx下的配置方法图文教程
2016/02/04 PHP
php实现获取近几日、月时间示例
2019/07/06 PHP
基于jquery的direction图片渐变动画效果
2010/05/24 Javascript
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
JavaScript 高级篇之闭包、模拟类,继承(五)
2012/04/07 Javascript
javascript 终止函数执行操作
2014/02/14 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
jQuery中end()方法用法实例
2015/01/08 Javascript
关于RequireJS的简单介绍即使用方法
2016/10/20 Javascript
Bootstrap table使用方法详细介绍
2016/12/09 Javascript
Vue异步组件使用详解
2017/04/08 Javascript
js的函数的按值传递参数(实例讲解)
2017/11/16 Javascript
快速搭建vue2.0+boostrap项目的方法
2018/04/09 Javascript
微信小程序webview实现长按点击识别二维码功能示例
2019/01/24 Javascript
详解Vue的异步更新实现原理
2020/12/22 Vue.js
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
Python内置数据结构与操作符的练习题集锦
2016/07/01 Python
python实现外卖信息管理系统
2018/01/11 Python
Django之模型层多表操作的实现
2019/01/08 Python
如何使用Python进行OCR识别图片中的文字
2019/04/01 Python
Django框架封装外部函数示例
2019/05/28 Python
python3图片文件批量重命名处理
2019/10/31 Python
Pycharm中配置远程Docker运行环境的教程图解
2020/06/11 Python
澳大利亚儿童精品仓库:Goo & Co.
2019/06/20 全球购物
美国帽子俱乐部商店:Hat Club
2019/07/05 全球购物
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
汽车技术服务与营销专业在籍生自荐信
2013/09/28 职场文书
优秀员工自荐书
2013/12/19 职场文书
大学毕业生个人自荐信范文
2014/01/08 职场文书
运动会广播稿30字
2014/01/21 职场文书
大学生入党推荐书范文
2014/05/17 职场文书
2014年预备党员群众路线教育实践活动对照检查材料思想汇报
2014/10/02 职场文书
委托公证书格式
2015/01/26 职场文书
Python合并多张图片成PDF
2021/06/09 Python
Python中的套接字编程是什么?
2021/06/21 Python