MongoDB介绍
Mongodb 非关系型数据库 但是他是最像关系型 类似于Json格式 数据里面有数据,再有数据 mysql 就比较难做到 分布式储存 计算机节点上 集群 Mangodb数据库 文档数据 json 格式 集群 运维搭建集群 一个集合类似于关系数据库中的表table 最小的单元是文档---数据 缺点:比较耗内存
MongoDB基本操作
mongo # 进入mongo
exit # 退出
显示所有数据库
show dbs
前3个是配置信息
# 进入数据库,创建 都是用use
如果没有库他会默认一个 test
use class13
# 进入了才能删除
db.dropDatabase() 必须大写
# 查看当前数据库
db
# mango 只有存在集合(数据)的数据库 才是有用的,才有价值,空数据库没有存在的价值
# 创建集合
db.createCollection('students') 必须大写 当然 也可以不用创集合 你在给集合加内容时就会自动创建
# 显示当前数据库的集合
show collections
# 删除集合
db.students.drop()
知识点一:MongoDB的常用操作
默认情况下,在集合中插入文档时,如果字段名中没有_id的字段名称,则MongoDB将自动添加一个ObjectId字段。
ObjectId是轻量型的,不同的机器都能全局唯一的生成它;ObjectId使用12字节的存储空间。
文档操作
想给集合插入数据
db.students.insert({'name':'xiaoming','age':18})
db.students.insert({'name':'aaa','age':22})
db.students.insert({'name':'bbb','age':18})
db.students.insert({'name':'ccc','age':18})
# 查看全部的数据
db.students.find()
# 唯一的Object id
# 指定_id
db.students.insert({"_id":123,"name":"sss",'age':13})
# 创建多个就是写到列表中就OK了
db.students.insert([{'name':'parker1','age':13},{'name':'parker2','age':14},{'name':'parker3','age':16}])
批量插入的结果是 3条
# 查询
db.students.find()
db.students.find().pretty() # 格式化显示 /ˈpretty/漂亮的
# 查看满足条件的的数据
db.students.find({'name':'parker2'}) # 就能查出来
# 格式化显示
db.students.find({'name':'parker1'}).pretty()
----------------------------------------------------------------
条件$gte $gt $lte $lt
db.students.find({age:{$gte:18}}) 大于等于18的
db.students.find({age:{$gt:18}}) 大于18的
db.students.find({age:{$lte:18}}) 小于等于18的
db.students.find({age:{$lt:18}}) 小于18的
and条件
or条件
$and
db.students.find({$and:
[
{'name':'parker1'},
{'age':13}
]
})
# name='parker1' and age=13
db.students.find({$or:
[{'name':'parker2'},
{'age':18}]
}).pretty()
# name=parker2 or age=18
and和 or混用
db.students.find({$or:[{},{}]})
db.students.find({$or:[{$and:[{},{}]},{$and:[{},{}]}]})
db.students.find({$or:[{$and:[{"name":"parker1"},{"age":13}]},{$and:[{"name":"xiaoming"},{"age":18}]}]})
({$or:[{$and:[{}, {}]},{$and:[{}, {age:{}}]}]})
# 修改数据
# 修改一条数据
# 两个字典 第一个是条件 只会更新找到的第一条数据
db.students.update({'name':'parker1'},{'name':'new_name'})
# 把前面所有的东西全部覆盖掉,替换掉
db.students.update({'name':'parker3'},{'name':'parker4','age':100})
# 现在我不想这样做,我要修改我指定的数据
db.students.update({'name':'parker2'},{$set:{'age':1000}})
# 他只改找到的第一条数据
db.students.update({"age":18},{$set:{"name":'baobao'}})
# 看一下区别
db.students.update({"age":18},{"name":'baobao'})
$set:有就修改,没有就创建
删除文档(数据)
# 删除满足条件的文档
db.students.remove({'name':'aaa'})
# 删除满足条件第一条的文档
db.students.insert({'name':'bbb','age':18})
db.students.remove({'name':'bbb'},{justOne:true})
# 删除所有的文档
db.students.remove({})
知识点二:Python操作MongoDB
import pymongo # 导入模块
# 1.建立连接
collection.insert_one({'name':''})
sudo ufw allow 27017 更新
-----------------------------------------------------------
import pymongo
# 建立连接
client = pymongo.MongoClient('127.0.0.1',27017) # 可以省略
# 指定数据库
db = client['python3']
# 指定集合
my_col = db['student']
# 数据操作 (怎删改查)
# 增
# my_col.insert({'name':'parker1','age':16})
# 增多个
my_col.insert_many([{'name':'parker1','age':13},{'name':'parker2','age':14},{'name':'parker3','age':16}])
# 查
# res = my_col.find_one()
# print(res)
# res = my_col.find()
# print(res)
# for i in res:
# print(i)
# 改
# my_col.update_one({'name':'parker1'},{'$set':{'age':100}})
# 查看
# res = my_col.find_one({'name':'parker1'})
# print(res)
# 删 删除一个
res = my_col.delete_one({'name':'parker3'})
print(res)
import pymongo
client = pymongo.MongoClient('127.0.0.1',27017)
db = client['mydb']
collection = db['stu']
collection.insert_one({'name':'aa','age':18})
collection.insert_many([
{'name':'bb','age':19},
{'name':'cc','age':20},
])
for i in collection.find():
print(i)
print(collection.find_one({'name':'bb'}))
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/289332.html