![d0425866580e1d47030b760011529085.png](https://i-blog.csdnimg.cn/blog_migrate/d5c8f15c0363df3241a05eb986df3d8f.jpeg)
MongoDB数据库操作
MongoDB数据库操作
一、启动MongoDB服务
二、链接数据库
三、数据库的常规命令
四、使用Navicat Premium 可视化工具查看数据库
五、MongoDB查询语法
六、MongoDB删除语法
七、MongoDB修改语法
八、其他更新语法
九、附件 Python语法 - 操控MongoDB
一、启动MongoDB服务
- 通过命令行启动MongoDB服务
- 命令:
mongod --dbpath /Users/liushuaitao/mongodb-macos-x86_64-4.4.0/data/db
- 语法:
mongod --dbpath 数据库存储路径
![4b6a96e3d0c8baa8037f02d28744bdc7.png](https://i-blog.csdnimg.cn/blog_migrate/50a7c63a65bd681b46c4c22ea2450984.jpeg)
二、链接数据库
-
-
- 重新打开一个
[命令窗口]
,输入命令:mongo
链接数据库
- 重新打开一个
-
- 命令:
mongo
![b8af54505101b8ff03f616aaa15dfbc5.png](https://i-blog.csdnimg.cn/blog_migrate/c8687e6745941088972dc11fd3165e48.jpeg)
三、数据库的常规命令
-
-
-
- 查看MongoDB已经有的数据库
-
-
- 命令:
show dbs
或show databases
![e30aef404b5f1d2be4c09eb15553c6a8.png](https://i-blog.csdnimg.cn/blog_migrate/b32161ae05e95d24d564571a0bc3eeb6.png)
-
-
-
-
- 使用或创建数据库
-
-
-
- 命令:
use test_01
[注意]
如果数据库不存在会进行创建,但是不会直接显示出来(需要等待数据库中有内容才会显示)
![e16f40338dfe972be8b56b4933017b66.png](https://i-blog.csdnimg.cn/blog_migrate/c82dd15fcd4a9a3a264739e37f1d8291.png)
-
-
-
-
- 创建集合
-
-
-
- 命令:
db.createCollection('c1')
- 语法:
db.createCollection('集合名词')
![436593dcdb501ac9ded2b2a807df42a4.png](https://i-blog.csdnimg.cn/blog_migrate/181712918c953a8c7d5c3f0a70d7eb55.png)
-
-
-
-
- 查看当前数据库下所有的集合
-
-
-
- 命令:
show collections
![a991a0f6fc0e83a8d677c0c56488db5f.png](https://i-blog.csdnimg.cn/blog_migrate/4da79b9804d31f573eb373fe68718dec.png)
-
-
-
-
- 插入数据-为c1集合插入数据
-
-
-
- 命令:
db.c1.insert({"username":"LiuShuaitao","age":18,"gender":"男","phone":"18001123456"})
- 语法结构:
db.c1.insert(字典结构数据)
[新语法结构]
- 插入一条数据:
db.c1.insert_one(字典结构数据)
- 插入多条数据:
db.c1.insert_many([字典结构数据,字典结构数据,...])
![0a28098611232d664fe086ff52c57e50.png](https://i-blog.csdnimg.cn/blog_migrate/8de614d335916369c9dca41ae3009cde.png)
-
-
-
-
- 退出MongoDB数据库
-
-
-
- 命令:
exit
![beb034613bb39127dbaf7d3deee66093.png](https://i-blog.csdnimg.cn/blog_migrate/0692c56c85d6644d5f1ff815bb2d1444.png)
四、使用Navicat Premium 可视化工具查看数据库
-
-
-
-
- 下载
[Navicat Premium]
软件进行安装
- 下载
-
-
-
- 下载地址:
http://www.navicat.com.cn/download/navicat-premium
- 根据自己的操作系统下载对应的软件:免费使用14天,关于激活(你们懂得-去百度...)
![68a7f0bca048a3c6d0aff459411622c3.png](https://i-blog.csdnimg.cn/blog_migrate/161d3733f75535c06f952d71e40b4d0c.jpeg)
-
-
-
-
[Navicat Premium ]
链接MongoDB
-
-
-
- 点击左上角
[链接+]
- 选择[MongoDB...]
进行链接数据库 - 点击链接测试 - 测试通过后点击
[保存]
![aacfef82f60b4a36a3a2f9c54c630bbe.png](https://i-blog.csdnimg.cn/blog_migrate/75c219237abaeb5e3375e124dfd3388e.jpeg)
五、MongoDB查询语法
-
-
-
-
- 查询语句
-
-
-
- 命令:
db.c1.find()
- 语法:
db.集合名词.find(query, projection)
- query:可选,使用查询操作符指定查询条件
- projection :可选-使用投影操作符指定返回的键 - 查询时返回文档中所有键值 只需省略该参数即可
![6c435644835850aafdf04375bd8c6f5d.png](https://i-blog.csdnimg.cn/blog_migrate/c21fc2bbaf85319719b90e23371e592c.png)
-
-
-
-
- 根据条件查询
-
-
-
- 命令:
db.c1.find({"age":18})
![d561173873d5e9572bb233cb907d59f5.png](https://i-blog.csdnimg.cn/blog_migrate/6d516408d2132cfe080a70906829e399.png)
-
-
-
-
- 根据条件语句查询(以下展示列表)
-
-
-
- 支持条件查询
- 支持模糊查询
![ea75cf4f1b44f61620a7be424e54d3d4.png](https://i-blog.csdnimg.cn/blog_migrate/6ba991c54878dcc896c8491a2b4db710.png)
![0cc07de7fa3e35c3733e0b893471731c.png](https://i-blog.csdnimg.cn/blog_migrate/c04ce09a232dd7bfe7c015fb07b0b22b.png)
六、MongoDB删除语法
-
-
-
-
- 删除数据库语法
-
-
-
- 步骤1:选择数据库-
use test
- 步骤2:执行删除语法:
db.dropDatabase()
![06dde142a14a8b533c600fa78e2c3d97.png](https://i-blog.csdnimg.cn/blog_migrate/d3f4da202ee4791b7ccfef14fc34436d.png)
-
-
-
-
- 删除集合
-
-
-
- 步骤1:切换到要删除的数据库
- 步骤2:执行删除命令-
db.c2.drop()
- 语法结构:
db.集合名词.drop()
![c19bbb7650fcad4fd3742a1e8b0244ee.png](https://i-blog.csdnimg.cn/blog_migrate/6d7048219cfc86224ab1a4809acca509.png)
-
-
-
-
- 根据条件删除数据
-
-
-
- 步骤1:查询所有的数据:
db.c1.find()
- 步骤2:执行命令删除想要删除的数据:
db.c1.remove({"age":8})
- 语法结构:
db.集合名词.remove(query,justOne)
- query :(可选)删除的文档的条件。
- justOne : (可选)如果设为 true 或 1,则只删除一个文档。
-
-
-
-
- 步骤3:查看结果:
db.c1.find()
[注意]
官方现在推荐使用-deleteOne() 和 deleteMany() 语法进行删除数据,可以尝试一下
- 步骤3:查看结果:
-
-
-
![c0d27cfcb73d216beb226b0e16f7a467.png](https://i-blog.csdnimg.cn/blog_migrate/32ad1642840bf3fd30a877f632579180.png)
七、MongoDB修改语法
-
-
-
-
- 根据原有数据
-
-
-
- 命令:
- 语法结构:
db.集合名词.update(query,update,{upsert: <boolean>,multi: <boolean>,writeConcern: <document>})
- query : update的查询条件
- update : 要更改的操作
- upsert : 可选
- multi : 可选
- writeConcern :可选
-
-
-
-
[注意]
官方下载推荐使用:replace_one or replace_many
-
-
-
![077e2870e617c2faa3ac24f87c267c48.png](https://i-blog.csdnimg.cn/blog_migrate/cd097a1cebc2cc9c8be2312b57750f58.png)
八、其他更新语法
-
-
-
-
- MongoDB的不断更新 - 会有新的组合语法可以使用-各位小伙伴可以查阅相关材料进行学习
-
-
-
- 例如:
find_one_and_delete()
find_one_and_update()
九、附件 Python语法 - 操控MongoDB
# 提前下载 - 下载pymongo第三方工具
# [1]下载第三方库
import pymongo
# [2]链接MongoDB数据库
# client = pymongo.MongoClient('mongodb://127.0.0.1:27017')
client = pymongo.MongoClient(host='localhost',port=27017)
# [3]创建数据库 - 和 选择使用数据库一致
# 如果选择的数据库不存在就会创建该数据库 - 不会直接在数据库展示
# 在创建集合的时候 - 相当于关系型数据库中的表
db = client.test_01
# [4]创建集合 或 选择集合
collection = db.c1
# [5]给集合中插入数据
data_01 = {"username":'张良','age':10,"add":'帝都'}
data_02 = {"username":'夏侯惇','age':18,"add":'帝都+1'}
"""
Use insert_one or insert_many
注意:insert已经被舍弃
insert函数- 插入数据-返回被插入数据的ID
"""
# result = collection.insert_one(data_01);
# [6]输出数据
# 5f3e7bc2f1d53f5bbf7374d1
# 5f3e7bc2f1d53f5bbf7374d1
# print("[6]--",result)
# 5f3e7cd79042b443791ae252
# print("[6]查看ID--",result.inserted_id)
"""
MongoDB 会对每一条数据自动生成一个:ObjectId类型的_id值作为当前这条数据的唯一标识
"""
# [7]插入多条数据
result = collection.insert_many([data_01,data_02]);
print('[7]--',result)
print('[7]插入多条返回值:--',result)
# [8]删除值
"""
Use delete_one or delete_many
"""
# result = collection.remove({'add':'帝都+1'})
print('[8]--',result) # {'n': 7, 'ok': 1.0} 返回值- 删除7条 表示执行成功
# result = collection.delete_one({'age':18})
# 数据 - 先进先出形式
# print('[8]delete_one--',result)
# [9]-修改数据
# 值修改一条
# result = collection.update({"username":'张良','age':10,"add":'帝都'},{"username":'狄仁杰','age':10,"add":'帝都'})
# print('[9]--',result)
"""
replace_one, update_one or update_many
"""
result = collection.replace_one({"username":'张良','age':10,"add":'帝都'},{"username":'甄姬','age':30,"add":'帝都'})
print('[9]replace_one--',result)
# 替换多条
# result = collection.replace_many({"username":'张良','age':18,"add":'帝都'},{"username":'甄姬1','age':302,"add":'帝都'})
# print('[9]replace_many--',result)
# [10]find_one
result = collection.find({'age':{'$lt':18}})
print('[10]---',result)
# Cursor 游标 理解为集合的形式
for item_data in result:
print('--',item_data)
pass
# [11]
result = collection.find({'username':{'$regex':'狄.杰'}})
print('[11]---',result)
# Cursor 游标 理解为集合的形式
for item_data in result:
print('--',item_data)
pass
"""
find_one_and_delete() 查找一个并删除
find_one_and_update()
"""