安装好后需要设置bin目录的环境变量
mongoDB默认使用执行mongod命令所属盘符根目录下的 /data/db作为自己的数据存储目录,如C:/data/db
所以在第一次执行mongod命令前先手动创建 /data/db
开启数据库,命令行
mongod
连接数据库
mongo
退出数据库
exit
基本命令
show dbs // 查看显示所有数据库
db // 查看当前操作的数据库
use 数据库名称 // 切换到指定的数据库,没有的话就会新建
db.students.insertOne({"name":"jack"}) // 当前数据库插入数据
show collections // 显示当前数据库的所有集合
db.students.find() // 查询当前数据库下students集合中的所有数据
在node中操作mongoDB数据库
mongoDB数据库基本概念
a,b,c就是数据库,user就是集合,集合里面是文档,文档必须是对象
{
'a':{
user:[{}, {}]
},
'b':{
user:[{}, {}]
},
'c':{
user:[{}, {}]
}
}
使用第三方mongoose来操作mongoDB数据库
官网 http://mongoosejs.com/
const mongoose = require('mongoose')
// 连接mongoDB数据库
mongoose.connect('mongodb://localhost:27017/test', {useNewUrlParser: true})
// 创建一个Cat模型
const Cat = mongoose.model('Cat', {name: String})
// 实例化一个Cat
const kitty = new Cat({name: 'Zildjian'})
// 持久化保存kitty实例
kitty.save().then(() => console.log('meow'))
增删改查
const mongoose = require('mongoose')
mongoose.connect('mongodb://localhost:27017/itcast', {useNewUrlParser: true})
const Schema = mongoose.Schema
// 设计文档结构
const userSchema = new Schema({
username: {
type: String,
required: true // 必须有
},
password: {
type: String,
required: true
},
email: {
type: String
}
})
// 将文档结构发布为模型
// mongoose.model方法用来将一个架构发不为model
// 第一个参数为大写名词单数字符串来表示这个集合名称
// mongoose会自动将大写名词单数字符串转换为小写复数的集合名称 User => users
// 返回的是模型构造函数
const User = mongoose.model('User', userSchema)
添加数据
// 添加数据
const admin = new User({
username: 'zs',
password: '1234',
email: '[email protected]'
})
admin.save(function (err, ret) {
if (err) {
console.log('保存失败')
}
else {
console.log('保存成功')
console.log(ret)
}
})
查询数据
// 查询所有数据
User.find(function (err, ret) {
if (err) {
console.log('查询失败')
}
else {
console.log(ret)
}
})
// 按条件查询数据
User.find({username: 'zs'}, function (err, ret) {
if (err) {
console.log('查询失败')
}
else {
console.log(ret)
}
})
// 查找匹配的第一个数据
User.findOne({username: 'zs'}, function (err, ret) {
if (err) {
console.log('查询失败')
}
else {
console.log(ret)
}
})
删除所有匹配条件的数据,mongoose已更新,建议使用deleteOne和deleteMany
//删除所有匹配条件的数据
User.remove({username: 'zs'}, function (err, ret) {
if (err) {
console.log('删除失败')
}
else {
console.log('删除成功')
console.log(ret)
}
})
更新数据,第一个参数为id,第二参数对象为要改的数据
//更新数据
User.findByIdAndUpdate('5d0f950a7aaf88066cea5f9e', {
password: 1111
}, function (err, ret) {
if (err) {
console.log('更新失败')
}
else {
console.log('更新成功')
}
})