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模块来对数据库进行增删改查等操作. 首先, ...
随机推荐
- Android NDK下载
http://dl.google.com/android/ndk/android-ndk-r10d-linux-x86_64.bin https://dl.google.com/android/rep ...
- Linux_Comand - Check disk space
df -h du -sh Delete folder older than 30 days find /path -name "test-*" -type d -mtime +30 ...
- hibernate 配置+注释
Hibernate配置属性 属性名 用途 hibernate.dialect 一个Hibernate Dialect类名允许Hibernate针对特定的关系数据库生成优化的SQL. 取值 full.c ...
- 基于注解的springmvc开发
原理简析 1. 背景知识:org.springframework.web.ServletContainerInitializer接口 在基于注解的servlet开发中,ServletContainer ...
- 读取yaml中的内容
def read_yml(path): """ 读取yml文件中的数据 :param path: 文件yaml 的路径 :return: 返回读取yaml文件内的结果 & ...
- 11 ORA-8102:Index Corruption解析
11 ORA-8102:Index Corruption解析 [oracle@DSI ~]$ oerr ora 810208102, 00000, "index key not found, ...
- Java面试题集(86-115)
Java程序员面试题集(86-115) 摘要:下面的内容包括Struts 2和Hibernate的常见面试题,虽然Struts 2在2013年6月曝出高危漏洞后已经显得江河日下,而Spring MVC ...
- Java ——接口
本节重点思维导图 定义: public interface Traffic { public static final int sits = 4; public abstract void run() ...
- cocos2dx基础篇(8) 开关按钮CCControlSwitch
[3.x] (1)去掉 “CC” (2)对象类 CCObject 改为 Ref (3)标签类 LabelTTF 改为 Label (4)CCControlEvent 改为强枚举 Control::Ev ...
- unity shader 热扭曲 (屏幕后处理)
效果: c# using System; using System.Collections; using System.Collections.Generic; using UnityEngine ...