当前位置: 首页 > 工具软件 > wang crud > 使用案例 >

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

莘俊能
2023-12-01

什么是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)
 类似资料: