MongoDB数据库操作
# 打开数据库
mongod
# 连接数据库
mongo
# 退出连接
exit
1. 基本命令
# 查看显示所有数据库
show dbs
# 查看当前操作的数据库
db
# 切换/创建 数据库
use 数据库名称
use itcast
# ------------------------------------------------
# 创建集合,添加数据
db.students.insertOne({"name":"Jack"})
# 查看集合
show collections
# 查看数据
db.students.find()
2.第三方包
2.1 mongo 官方推荐,原生的
https://github.com/mongodb/node-mongodb-native
2.2 mongoose 基于MongoDB封装,使用这个
https://mongoosejs.com/
3. 数据库的基本概念
- 数据库
- 集合
- 文档
# mongodb
{
# 数据库
qq: {
# 集合
users: [
# 文档
{},
{},
{},
...
],
products: [
]
...
},
taobao: {
},
baidu: {
}
...
}
4. mongoose基本使用
/**
* mongoose 基本使用
*/
// 1.引入
var mongoose = require('mongoose')
// 2. 连接数据库,会自动创建
mongoose.connect('mongodb://localhost/test')
// 3. 设计文档(集合)结构
var userSchema = new mongoose.Schema({
username: {
type: String,
required: true // 集合中必须有username这个属性
},
password: {
type: String,
required: true // 集合中必须有 password 这个属性
},
email: {
type: String
}
})
/**
* 4. 将文档结构发布为模型
mongoose.model 方法就是将一个架构发布为 model
'User' —— 数据库中集合名称,会转换为 users(变小写,加s)
userSchema —— 架构 Schema
返回值:模型构造函数
*/
var User = mongoose.model('User', userSchema);
5. 使用mongoose进行增删改查
- 新增数据
/**
* 5. 使用 User 这个模型构造函数操作数据(增删改查)
*/
// ****************************
// ----- /新增数据
// ****************************
var admin = new User({
username: 'admin',
password: '123456',
email: 'admin@admin.com'
})
// 数据持久化,保存到数据库
admin.save(function(err,result){
if(err){
console.log('保存失败')
}else{
console.log('保存成功')
console.log(result)
}
})
- 查询
// ****************************
// ----- /查询所有数据
// ****************************
User.find(function (err, result) {
if (err) {
console.log('查询所有数据失败')
} else {
console.log('查询所有数据成功')
console.log(result)
}
})
// ****************************
// ----- /按条件查询数据
// ****************************
// 返回满足条件的所有数据(该数据为数组,即使只有一个)
User.find({
username: '张三'
}, function (err, result) {
if (err) {
console.log('条件查询失败')
} else {
console.log('条件查询成功')
console.log(result)
}
})
// ****************************
// ----- /按条件查询数据
// ****************************
// 返回第一个满足条件的数据(该数据为对象)
User.findOne({
username: '张三'
}, function (err, result) {
if (err) {
console.log('条件查询失败')
} else {
console.log('条件查询成功')
console.log(result)
}
})
- 更新数据
// ****************************
// ----- /更新数据
// ****************************
User.findByIdAndUpdate('5fcca48078ee3421d09c72b8', {
password: '123'
}, (err, data) => {
if(err) {
console.log('更新失败')
}else{
console.log('更新成功')
console.log(data)
}
})