nodejs 操作 mongodb 数据库
操作手册:
npmjs.com
搜索: mongodb
使用官方的 mongodb 包来操作
https://github.com/mongodb/node-mongodb-native //比较麻烦
使用第三方包 mongoose 来操作
mongoose 基于 MongoDB 官方的 mongodb 包再一次做了封装
官方网址: http://mongoosejs.com
mongo数据库连接
var mongoose = require('mongoose')
var Schema = mongoose.Schema
//连接数据库
//指定连接的数据库不需要存在,当你插入第一条数据之后就会自动创建
mongoose.connect('mongodb://localhost/itcast')
增加数据与表结构设计
var mongoose = require('mongoose')
var Schema = mongoose.Schema
//连接数据库
//指定连接的数据库不需要存在,当你插入第一条数据之后就会自动创建
mongoose.connect('mongodb://localhost/itcast')
// 设计集合结构(表结构)
// 字段名称就是表结构中的属性名称
// 值
// 约束的目的是为了保证数据的安全性, 不要有脏数据
/*var blogSchema = new Schema({
title : String,
author: String,
body : String,
comments: [{body : String, date : Date}]
hidden : Boolean,
meta : {
votes : Number,
favs : Number
}
});
*/
// 2.设计文档结构
var userSchema = new Schema({
username : {
type : String,
required : true //必须有
},
password : {
type : String,
required : true
},
email : {
type : String
}
})
// 3.将文档结构发布为模型
// mongoose.model 方法就是用来将一个架构发布为 model
// 第一个参数: 传入大写名词单数字符用来表示你的数据名称
// 例如 : 这里的User 最终会变为 users 集合名称
// 第二个参数: 架构 Schema
//
// 返回值: 模型构造函数
var User = mongoose.model('User', userSchema)
// 4. 当我们有了模型构造函数之后, 就可以使用这个构造函数对 users
// 增加数据
var admin = new User({
username: 'admin',
password: '',
email: 'admin@admin.com'
})
admin.save( function (err, ret) {
if (err) {
console.log('保存失败')
} else {
console.log('保存成功')
console.log(ret)
}
})
数据查询
var mongoose = require('mongoose')
var Schema = mongoose.Schema
//连接数据库
//指定连接的数据库不需要存在,当你插入第一条数据之后就会自动创建
mongoose.connect('mongodb://localhost/itcast')
// 设计集合结构(表结构)
// 字段名称就是表结构中的属性名称
// 值
// 约束的目的是为了保证数据的安全性, 不要有脏数据
/*var blogSchema = new Schema({
title : String,
author: String,
body : String,
comments: [{body : String, date : Date}]
hidden : Boolean,
meta : {
votes : Number,
favs : Number
}
});
*/
// 2.设计文档结构
var userSchema = new Schema({
username : {
type : String,
required : true //必须有
},
password : {
type : String,
required : true
},
email : {
type : String
}
})
// 3.将文档结构发布为模型
// mongoose.model 方法就是用来将一个架构发布为 model
// 第一个参数: 传入大写名词单数字符用来表示你的数据名称
// 例如 : 这里的User 最终会变为 users 集合名称
// 第二个参数: 架构 Schema
//
// 返回值: 模型构造函数
var User = mongoose.model('User', userSchema)
// 4. 当我们有了模型构造函数之后, 就可以使用这个构造函数对 users
// 增加数据
// var admin = new User({
// username: 'admin',
// password: '123456',
// email: 'admin@admin.com'
// })
// admin.save( function (err, ret) {
// if (err) {
// console.log('保存失败')
// } else {
// console.log('保存成功')
// console.log(ret)
// }
// })
// 查询数据
// 查询所有
// User.find(function (err, ret) {
// if ( err ) {
// console.log( err )
// } else {
// console.log( ret )
// }
// })
// 按条件查询
User.find({ username : 'zs' }, function (err, ret) {
if (err) {
console.log(err)
} else {
console.log( ret )
}
})
删除数据
var mongoose = require('mongoose')
var Schema = mongoose.Schema
//连接数据库
//指定连接的数据库不需要存在,当你插入第一条数据之后就会自动创建
mongoose.connect('mongodb://localhost/itcast')
// 2.设计文档结构
var userSchema = new Schema({
username : {
type : String,
required : true //必须有
},
password : {
type : String,
required : true
},
email : {
type : String
}
})
// 增加数据
// var admin = new User({
// username: 'zs',
// password: '123456',
// email: 'admin@admin.com'
// })
// admin.save( function (err, ret) {
// if (err) {
// console.log('保存失败')
// } else {
// console.log('保存成功')
// console.log(ret)
// }
// })
var User = mongoose.model('User', userSchema)
// 删除数据
User.remove({
username : 'zs'
}, function (err, ret) {
if ( err ) {
console.log(err)
} else {
console.log('删除成功')
console.log(ret)
}
})
var id = '59f9eb4cc2283e1bac7be51d';
var removestr = {'username': 'zs'};
User.findByIdAndRemove(id, removestr, function(err, res){
if (err) {
console.log("Error:" + err);
}
else {
console.log("Res:" + res);
}
})
var removestr = {'username': 'zs'};
User.findOneAndRemove(removestr, function(err, res){
if (err) {
console.log("Error:" + err);
}
else {
console.log("Res:" + res);
}
})
更新数据
var mongoose = require('mongoose')
var Schema = mongoose.Schema
//连接数据库
//指定连接的数据库不需要存在,当你插入第一条数据之后就会自动创建
mongoose.connect('mongodb://localhost/itcast')
// 2.设计文档结构
var userSchema = new Schema({
username : {
type : String,
required : true //必须有
},
password : {
type : String,
required : true
},
email : {
type : String
}
})
var User = mongoose.model('User', userSchema)
// 更新数据
var wherestr = {'username': 'admin'};
// 执行更新数据
var updatestr = {'password': 'abcdef'};
User.update(wherestr, updatestr, function(err, res) {
if (err) {
console.log(err);
} else {
console.log(res);
}
});
User.findOneAndUpdate({username : 'admin'},{
password : 'admin123'
},function (err, ret) {
if (err) {
console.log(err)
} else {
console.log('更新成功')
console.log(ret)
}
})
User.findByIdAndUpdate('5d528b7239a9cf20888515d5',{
password : 'admin123'
},function (err, ret) {
if (err) {
console.log(err)
} else {
console.log('更新成功')
console.log(ret)
}
})
nodejs 操作 mongodb 数据库的更多相关文章
- koa 基础(二十一)nodejs 操作mongodb数据库 --- 查询数据
1.app.js /** * nodejs 操作mongodb数据库 * 1.安装 操作mongodb * cnpm install mongodb --save * 2.引入 mongodb 下面的 ...
- koa 基础(二十)nodejs 操作mongodb数据库 --- 新增数据
1.app.js /** * nodejs 操作mongodb数据库 * 1.安装 操作mongodb * cnpm install mongodb --save * 2.引入 mongodb 下面的 ...
- 二十六、Nodejs 操作 MongoDb 数据库
一. 在 Nodejs 中使用 Mongodb 前面的课程我们讲了用命令操作 MongoDB,这里我们看下如何用 nodejs 来操作数据库需要引包: npm install mongodb --sa ...
- NodeJS操作MongoDB数据库
一.node.js对于mongodb的基本操作 1.数据库的开机 首先我们要先对数据库进行开机的操作,建立一个文件夹用于存放数据库文档.如D:\mongo,接下去在cmd当中键入命令-> mon ...
- nodejs操作mongodb数据库封装DB类
这个DB类也算是我经历了3个实际项目应用的,现分享出来,有需要的请借鉴批评. 上面的注释都挺详细的,我使用到了nodejs的插件mongoose,用mongoose操作mongodb其实蛮方便的. 关 ...
- Nodejs操作MongoDB数据库示例
//mongodb_demo.js /** cnpm install mongodb */ var MongoClient = require('mongodb').MongoClient; var ...
- Koa 操作 Mongodb 数据库
node-mongodb-native的介绍 使用基于官方的 node-mongodb-native 驱动,封装一个更小.更快.更灵活的 DB 模块, 让我们用 nodejs 操作 Mongodb 数 ...
- NodeJs连接操作MongoDB数据库
NodeJs连接操作MongoDB数据库 一,介绍 MongoDB是一种文档导向数据库管理系统,由C++撰写而成.介绍如何使用 Node.js 来连接 MongoDB,并对数据库进行操作. Mongo ...
- nodeJS中使用mongoose模块操作mongodb数据库
在实际运用中,对于数据库的操作我们不可能一直在cmd命令行中进行操作,一般情况下需要在node环境中来操作mongodb数据库,这时就需要引入mongoose模块来对数据库进行增删改查等操作. 首先, ...
随机推荐
- sqli-labs(18)
开始挑战第十八关(Header Injection - Uagent field - Error based) 常见的HTTP注入点产生位置为[Referer].[X-Forwarded-For].[ ...
- 同一个tomcat部署多个项目
在开发项目中,有时候我们需要在同一个tomcat中部署多个项目,小编之前也是遇到了这样的情况,碰过不少的壁,故整理总结如下,以供大家参考.(以Linux为例,其他系统同样适用) 一.首先将需要部署的项 ...
- iptables添加、删除端口
简洁才是王道, 下面是添加一个udp端口,端口号8566,即接收到8566端口的所有udp包 /sbin/iptables -I INPUT -p udp --dport -j ACCEPT 要删除这 ...
- [Python]ctypes+struct实现类c的结构化数据串行处理
1. 用C/C++实现的结构化数据处理 在涉及到比较底层的通信协议开发过程中, 往往需要开发语言能够有效的表达和处理所定义的通信协议的数据结构. 在这方面是C/C++语言是具有天然优势的: 通过str ...
- 服务器端-W3Chool:服务器脚本教程
ylbtech-服务器端-W3Chool:服务器脚本教程 1.返回顶部 1. 服务器脚本教程 从左侧的菜单选择你需要的教程! SQL SQL 是用于访问和处理数据库的标准的计算机语言. 在本教程中,您 ...
- 电商企业如何做好EDM营销随感
对于中小型电商企业来说,运用EDM营销是一种非常不错的营销方式,正如我在电商EDM数据营销中的关键介绍一样.下面博主给大家介绍一下电商企业如何做好EDM营销. 一.在EDM邮件内容中跟客户建立信任的关 ...
- 【2】通过Ajax方式上传文件(图片),使用FormData进行Ajax请求
HTML: <form id= "uploadForm"> <p >指定文件名: <input type="text" name= ...
- 那些年我们经历的BT面试题
初入职场面试的我到处碰壁,以下是我个人对几道面试题的小总结: 1.一列数字的规则如下:1,1,2,3,5,8,13,21, 34........ 求第30位数字是多少,用递规和非递归两种方法算法实现. ...
- NW.js
1.package.json属性说明: ——window窗口外观常用属性包括: title : 字符串,设置默认 title width/height : 主窗口的大小 toolbar : bool ...
- (一)VS2015下配置OpenGL
刚开始用OpenGL,一开始不太明白配置库的原理,在VS2015下耗费了大量时间.这里将配置过程做个笔记,以供日后查看.配置过程中,需要下载cmake构建工具以及glew和glfw库. 下载地址为: ...