MongoDB

2022/9/15 2:18:53

本文主要是介绍MongoDB,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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'}))

 



这篇关于MongoDB的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程