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 数据库存储路径
二、链接数据库
-
-
- 重新打开一个
[命令窗口]
,输入命令:mongo
链接数据库
- 重新打开一个
-
- 命令:
mongo
三、数据库的常规命令
-
-
-
- 查看MongoDB已经有的数据库
-
-
- 命令:
show dbs
或show databases
-
-
-
-
- 使用或创建数据库
-
-
-
- 命令:
use test_01
[注意]
如果数据库不存在会进行创建,但是不会直接显示出来(需要等待数据库中有内容才会显示)
-
-
-
-
- 创建集合
-
-
-
- 命令:
db.createCollection('c1')
- 语法:
db.createCollection('集合名词')
-
-
-
-
- 查看当前数据库下所有的集合
-
-
-
- 命令:
show collections
-
-
-
-
- 插入数据-为c1集合插入数据
-
-
-
- 命令:
db.c1.insert({"username":"LiuShuaitao","age":18,"gender":"男","phone":"18001123456"})
- 语法结构:
db.c1.insert(字典结构数据)
[新语法结构]
- 插入一条数据:
db.c1.insert_one(字典结构数据)
- 插入多条数据:
db.c1.insert_many([字典结构数据,字典结构数据,...])
-
-
-
-
- 退出MongoDB数据库
-
-
-
- 命令:
exit
四、使用Navicat Premium 可视化工具查看数据库
-
-
-
-
- 下载
[Navicat Premium]
软件进行安装
- 下载
-
-
-
- 下载地址:
http://www.navicat.com.cn/download/navicat-premium
- 根据自己的操作系统下载对应的软件:免费使用14天,关于激活(你们懂得-去百度...)
-
-
-
-
[Navicat Premium ]
链接MongoDB
-
-
-
- 点击左上角
[链接+]
- 选择[MongoDB...]
进行链接数据库 - 点击链接测试 - 测试通过后点击
[保存]
五、MongoDB查询语法
-
-
-
-
- 查询语句
-
-
-
- 命令:
db.c1.find()
- 语法:
db.集合名词.find(query, projection)
- query:可选,使用查询操作符指定查询条件
- projection :可选-使用投影操作符指定返回的键 - 查询时返回文档中所有键值 只需省略该参数即可
-
-
-
-
- 根据条件查询
-
-
-
- 命令:
db.c1.find({"age":18})
-
-
-
-
- 根据条件语句查询(以下展示列表)
-
-
-
- 支持条件查询
- 支持模糊查询
六、MongoDB删除语法
-
-
-
-
- 删除数据库语法
-
-
-
- 步骤1:选择数据库-
use test
- 步骤2:执行删除语法:
db.dropDatabase()
-
-
-
-
- 删除集合
-
-
-
- 步骤1:切换到要删除的数据库
- 步骤2:执行删除命令-
db.c2.drop()
- 语法结构:
db.集合名词.drop()
-
-
-
-
- 根据条件删除数据
-
-
-
- 步骤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:查看结果:
-
-
-
七、MongoDB修改语法
-
-
-
-
- 根据原有数据
-
-
-
- 命令:
- 语法结构:
db.集合名词.update(query,update,{upsert: <boolean>,multi: <boolean>,writeConcern: <document>})
- query : update的查询条件
- update : 要更改的操作
- upsert : 可选
- multi : 可选
- writeConcern :可选
-
-
-
-
[注意]
官方下载推荐使用:replace_one or replace_many
-
-
-
八、其他更新语法
-
-
-
-
- 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()
"""