学习笔记(十八)——MongoDB(CRUD)与Python交互

什么是MongoDB?

MongoDB 是一个跨平台的,面向文档的数据库,是当前 NoSQL 数据库产品中最热门的一种。它介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富,最像关系数据库的产品。它支持的数据结构非常松散,是类似JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。其最小的单元是文档,缺点:比较耗内存。

mongodb的库、集合的操作

mongo:进入mongo

show dbs :查看所有数据库 (前3个是配置信息)

use 数据库名 :切换/创建数据库(存在就进入,不存在就创建)

db :查看所在库

db.dropDatabase(): 删除库(要先进入才能删除)

show collections :查看当前数据库的集合

db.createCollection('stu') : 创建集合 stu:集合名

db.stu.drop() : 删除集合 stu:集合名


MongoDB的常用操作

1、增

db.集合名称.insert(文档)

示例:

#插入一条数据
db.stu.insert({name:'wang',age:19})
#插入多条数据
db.stu.insert([
	{name:'wang',sex:'男',age:18},
	{name:'li',sex:'女',age:16},
	{name:'bai',sex:'男',age:19},
])         

注意:我们插入数据后,系统会自动生成一个_id,我们可以在插入时更改这个id,如:

db.stu.insert({_id:1,name:'wang',age:19})

2、查

1、查询所有数据

db.stu.find()   整体查询

db.stu.find().pretty   格式化显示,美观查询

2、条件查询

db.stu.find({name:'wang'},{age:1})   显示满足姓名为'wang'的年龄

db.stu.find({name:'wang'},{age:0})  不显示满足姓名为'wang'的年龄

and条件、 or条件(注意在使用and或or前不能漏掉$

db.students.find({$or:[{},{}]})   
db.students.find({$or:[{$and:[{},{}]},{$and:[{},{}]}]})   

$gt:大于
$lt:小于
$gte:大于或等于
$lte:小于或等于
$ne:不等于

示例:

db.stu.find({
    $or:[
        {$and:[{sex:'女'},{age:18}}]},    #条件1
        {&and:[{sez:'男'},{age:{$gt:18}}]}    #条件2
    ]
}) 
查询满足条件1或者条件2的数据
条件1:性别女并且年龄18岁
条件2:性别男并且年龄大于18

3、改

$set:有就修改,没有就创建

db.stu.update({name:'wang'},{name:wangwang})  只会修改一条数据,并且其他数据也没了
db.stu.update({name:'wang'},{$set:{age:25}})  只会修改一条数据,并且其他数据保留
db.stu.update({name:'bai'},{$set:{age:25}},{multi:true})  会修改多条(所有满足条件)数据,并且其他数据数据保留

4、删

db.stu.remove({age:25},{justOne:true})   只删除符合条件的第一条数据  注意justOne的大小写
db.stu.remove({age:25})   删除符合条件的所有数据
db.stu.remove({})   删除所有数据

Python操作MongoDB

#准备--------------------------------------------------------

#导入模块
import pymongo
#systemctl start mongodb.service   开启服务
#1、建立连接
client = pymongo.MongoClient('127.0.0.1',27017)
#2、指定数据库
db = client['mydb']
#3、指定集合
collection = db['stu']

#操作---------------------------------------------------------

#增
#插入一条
collection.insert_one({'name':'wu','sex':'男','age':18})
#插入多条
collection.insert_many([
    {'name':'wang','sex':'男','age':18},
    {'name':'li','sex':'女','age':16},
    {'name':'bai','sex':'男','age':19},
])

#改
#修改一条
collection.update_one({'name':'wang'},{'$set':{'age':20}})
#修改多条
collection.update_many({'name':'li'},{'$set':{'age':21}})


#删
#删除一条满足条件
collection.delete_one({'name':'li'})
#删除多条满足条件
collection.delete_many({'name':'li'})
#删除所有
collection.delete_many({})


#查
data = collection.find()
for i in data:
    print(i)
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

别呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值