🌷数据库准备
🎈Mongoshell
1.在指定目录下创建mongodb文件夹、其子文件log和data以及mongodb.log
cd /home/ubuntu
mkdir -p mongodb/data
mkdir -p mongodb/log
touch mongodb/log/mongodb.log
执行mongodb命令启动mongdb服务
mongod --dbpath /home/ubuntu/mongodb/data --logpath /home/ubuntu/mongodb/log/mongodb.log --logappend --fork
启动mongodb
mongodbsh
🎈创建数据库
use 数据库名
如果数据库不存在,则创建数据库,如果存在,则直接切换到指定路径
例:创建mydb数据库
use mydb
查看所有数据库
show dbs
可以看到,新创建的mydb不在数据库列表中,这是因为MongoDB中数据库和集合的创建都输入懒创建,要想显示它们,向mydb数据库中插入一些数据即可
MongoDB中默认的数据库为test,如果没有创建新的数据库,集合将默认存放在test数据库中
🎈删除数据库
db.dropDatabase()
可以使用db命令查看当前数据库名
这里以删除mydb数据库为例
🌷集合操作
🎈显式创建集合
db.createCollection(name,option)
例如在mydb下创建student集合(注意:先创建数据库,在创建集合)
🎈重命名集合
db.mydb.renameCollection()
例:将mydb改名为myDB
🎈查询所有集合
show collections
🎈删除集合
db.集合名.drop()
例:删除myDB集合
🌷文档操作
🎈插入文档
1.插入单个文档
db.集合名.insertOne({})
2.插入多个文档
db.集合名.insertMany({[]})
例:在mydb数据库中student集合下插入如下图所示的student集合的表
db.student.insertMany([
{name:'Alice',age:20,gender:'female',major:'Computer Science'},
{name:'Bob',age:22,gender:'male',major:'Mathmatics'},
{name:'Charlie',age:21,gender:'male',major:'Physics'}])
插入完成后用find()方法查看集合
还可以先将文档定义成一个变量,再进行插入
s={name:'Alice',age:20,gender:'female',major:'Computer Science'}
db.student.insertOne(s)
db.stuent.find({})
🎈更新文档
1.单条更新:updateOne
语法:
db.collection.updateOne(<query>,<objNew>)
- query:查询的条件
- objNew:更新的操作
例:我们更新stuinfo文档中名叫nancy的更改为king
db.stuinfo.updateOne({name: 'nancy'}, {$set: {name: 'king'}})
再用find方法查看一下是否修改成功
db.stuinfo.find({})
2.多条更新:updateMany
语法:
db.collection.updateMany(<query>,<objNew>)
- query:查询调价
- objNew:更新操作
例:将姓名name为“nancy”的所有文档更新为“joker”
db.stuinfo.updateMany({name: 'nancy'}, {$set: {name: 'joker'}})
db.stuinfo.find({})
操作结果如图:
🎈删除文档
deleteOne()和deleteMany()方法可以来移除集合中的数据
语法格式:
db.COLLECTION_NAME.deleteOne(<query>)
db.COLLECTION_NAME.deleteMany(<query>)
参数说明:
query:delete的查询条件,类似sql delete查询内where后面的语句
(1)删除集合col下全部文档
db.col.deleteMany({})
db.col.find({})
具体操作如图所示:
(2)删除指定条件的文档
删除集合stuinfo中姓名name为joker的全部文档
db.stuinfo.deleteMany({name:'joker'})
db.stuinfo.find({})
删除年龄age为18的第一个文档
db.stuinfo.deleteOne({age: 18})
db.stuinfo.find({})