Task02:数据库的基本使用(MongoDB)
1. 安装
参见Task01
里面的步骤在Linux
平台上进行安装,这里不再赘述
2. 简介
3. 特点
4. 概念
5. 数据库的基本操作
5.1 新建
语法格式为
use DATABASE_NAME
use
同样也可以用来切换数据库,或者说本身就是切换数据库的命令。只是如果当数据库不存在的时候,就新建该数据库,否则切换到该数据库。
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
> use toy
switched to db toy
> db
toy
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
>
我们发现,虽然已经新建了数据库toy
,但是其并不在数据库列表当中。但是查询当前所在的数据库,却又显示为toy
,证明创建成功。这应该是因为数据库当中没有数据。
5.2 删除
语法如下:
db.dropDatabase()
切换到要删除的数据库,运行该命令即可
5.3 查看
db
是显示当前数据库,show dbs
是展示所有数据库
> db
toy
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
6.集合(表)的基本操作
6.1 新建
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
> use toy
switched to db toy
> db
toy
> db.createCollection("Marvel")
{ "ok" : 1 }
> db.createCollection("Disney")
{ "ok" : 1 }
> show tables
Disney
Marvel
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
toy 0.000GB
>
6.2 删除
语法格式:
db.collection.drop()
这里的cpllection
指的是集合的名字
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
toy 0.000GB
> db
toy
> show tables
Disney
Marvel
> db.Marvel.drop()
true
> show tables
Disney
> db
toy
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
toy 0.000GB
>
6.3 查看
语法格式:
show tables
7. 文档(行,记录)的基本操作
7.1 新建
> show tables
Disney
> db
toy
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
toy 0.000GB
> show tables
Disney
> db.Disney.insert({name:'Mickey',type:'mouse'})
WriteResult({ "nInserted" : 1 })
> db.Disney.insert({name:'Donald',type:'duck'})
WriteResult({ "nInserted" : 1 })
> db.Disney.insert({name:'Goofy',type:'dog'})
WriteResult({ "nInserted" : 1 })
> db.Disney.insert({name:'Pluto',type:'dog'})
WriteResult({ "nInserted" : 1 })
我们可以用find
来查看集合(表)当中的文档(记录)
> db.Disney.find()
{ "_id" : ObjectId("6225f8ed39108c22ab583664"), "name" : "Mickey", "type" : "mouse" }
{ "_id" : ObjectId("6225f90e39108c22ab583665"), "name" : "Donald", "type" : "duck" }
{ "_id" : ObjectId("6225f92839108c22ab583666"), "name" : "Goofy", "type" : "dog" }
{ "_id" : ObjectId("6225f93939108c22ab583667"), "name" : "Pluto", "type" : "dog" }
我们也可以将文档赋予变量,然后插入变量
> document = {name:'Minnie',type:'mouse'}
{ "name" : "Minnie", "type" : "mouse" }
> db.Disney.insert(document)
WriteResult({ "nInserted" : 1 })
> db.Disney.find()
{ "_id" : ObjectId("6225f8ed39108c22ab583664"), "name" : "Mickey", "type" : "mouse" }
{ "_id" : ObjectId("6225f90e39108c22ab583665"), "name" : "Donald", "type" : "duck" }
{ "_id" : ObjectId("6225f92839108c22ab583666"), "name" : "Goofy", "type" : "dog" }
{ "_id" : ObjectId("6225f93939108c22ab583667"), "name" : "Pluto", "type" : "dog" }
{ "_id" : ObjectId("6225f9c339108c22ab583668"), "name" : "Minnie", "type" : "mouse" }
>
7.2 删除
我们先执行一个重复插入数据,便于接下来演示如何删除,然后查看集合
> db.Disney.insert(document)
WriteResult({ "nInserted" : 1 })
> db.Disney.find()
{ "_id" : ObjectId("6225f8ed39108c22ab583664"), "name" : "Mickey", "type" : "mouse" }
{ "_id" : ObjectId("6225f90e39108c22ab583665"), "name" : "Donald", "type" : "duck" }
{ "_id" : ObjectId("6225f92839108c22ab583666"), "name" : "Goofy", "type" : "dog" }
{ "_id" : ObjectId("6225f93939108c22ab583667"), "name" : "Pluto", "type" : "dog" }
{ "_id" : ObjectId("6225f9c339108c22ab583668"), "name" : "Minnie", "type" : "mouse" }
{ "_id" : ObjectId("6225fafb39108c22ab583669"), "name" : "Minnie", "type" : "mouse" }
可以看到,Minnie
出现了两次,我们尝试去删除:
> db.Disney.remove({name:'Minnie'})
WriteResult({ "nRemoved" : 2 })
> db.Disney.find()
{ "_id" : ObjectId("6225f8ed39108c22ab583664"), "name" : "Mickey", "type" : "mouse" }
{ "_id" : ObjectId("6225f90e39108c22ab583665"), "name" : "Donald", "type" : "duck" }
{ "_id" : ObjectId("6225f92839108c22ab583666"), "name" : "Goofy", "type" : "dog" }
{ "_id" : ObjectId("6225f93939108c22ab583667"), "name" : "Pluto", "type" : "dog" }
直接删除的话,会删除全部符合条件的文档,如果只想删除找到的第一条记录:
>db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)
实例如下:
> db.Disney.find()
{ "_id" : ObjectId("6225f8ed39108c22ab583664"), "name" : "Mickey", "type" : "mouse" }
{ "_id" : ObjectId("6225f90e39108c22ab583665"), "name" : "Donald", "type" : "duck" }
{ "_id" : ObjectId("6225f92839108c22ab583666"), "name" : "Goofy", "type" : "dog" }
{ "_id" : ObjectId("6225f93939108c22ab583667"), "name" : "Pluto", "type" : "dog" }
{ "_id" : ObjectId("6225fc2239108c22ab58366b"), "name" : "Minnie", "type" : "mouse" }
{ "_id" : ObjectId("6225fc3e39108c22ab58366c"), "name" : "Minnie", "type" : "mouse" }
> db.Disney.remove({name:'Minnie'},1)
WriteResult({ "nRemoved" : 1 })
> db.Disney.find()
{ "_id" : ObjectId("6225f8ed39108c22ab583664"), "name" : "Mickey", "type" : "mouse" }
{ "_id" : ObjectId("6225f90e39108c22ab583665"), "name" : "Donald", "type" : "duck" }
{ "_id" : ObjectId("6225f92839108c22ab583666"), "name" : "Goofy", "type" : "dog" }
{ "_id" : ObjectId("6225f93939108c22ab583667"), "name" : "Pluto", "type" : "dog" }
{ "_id" : ObjectId("6225fc3e39108c22ab58366c"), "name" : "Minnie", "type" : "mouse" }
>
如果想要删除集合内所有的文档,可以使用类似常规 SQL 的 truncate 命令:
> db.col.remove({})
WriteResult({ "nRemoved" : 2 })
> db.col.find()
>
7.3 更新1
由于高飞是直立行走,所以我们也可以将其种类改为人类
> db.Disney.find()
{ "_id" : ObjectId("6225f8ed39108c22ab583664"), "name" : "Mickey", "type" : "mouse" }
{ "_id" : ObjectId("6225f90e39108c22ab583665"), "name" : "Donald", "type" : "duck" }
{ "_id" : ObjectId("6225f92839108c22ab583666"), "name" : "Goofy", "type" : "dog" }
{ "_id" : ObjectId("6225f93939108c22ab583667"), "name" : "Pluto", "type" : "dog" }
{ "_id" : ObjectId("6225fc3e39108c22ab58366c"), "name" : "Minnie", "type" : "mouse" }
> db.Disney.update({name:'Goofy'},{$set:{type:'human'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.Disney.find()
{ "_id" : ObjectId("6225f8ed39108c22ab583664"), "name" : "Mickey", "type" : "mouse" }
{ "_id" : ObjectId("6225f90e39108c22ab583665"), "name" : "Donald", "type" : "duck" }
{ "_id" : ObjectId("6225f92839108c22ab583666"), "name" : "Goofy", "type" : "human" }
{ "_id" : ObjectId("6225f93939108c22ab583667"), "name" : "Pluto", "type" : "dog" }
{ "_id" : ObjectId("6225fc3e39108c22ab58366c"), "name" : "Minnie", "type" : "mouse" }
我们再把高飞的分类给改回去
> db.Disney.find()
{ "_id" : ObjectId("6225f8ed39108c22ab583664"), "name" : "Mickey", "type" : "mouse" }
{ "_id" : ObjectId("6225f90e39108c22ab583665"), "name" : "Donald", "type" : "duck" }
{ "_id" : ObjectId("6225f92839108c22ab583666"), "name" : "Goofy", "type" : "human" }
{ "_id" : ObjectId("6225f93939108c22ab583667"), "name" : "Pluto", "type" : "dog" }
{ "_id" : ObjectId("6225fc3e39108c22ab58366c"), "name" : "Minnie", "type" : "mouse" }
> db.Disney.save({ "_id" : ObjectId("6225f92839108c22ab583666"), "name" : "Goofy", "type" : "dog" })
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.Disney.find()
{ "_id" : ObjectId("6225f8ed39108c22ab583664"), "name" : "Mickey", "type" : "mouse" }
{ "_id" : ObjectId("6225f90e39108c22ab583665"), "name" : "Donald", "type" : "duck" }
{ "_id" : ObjectId("6225f92839108c22ab583666"), "name" : "Goofy", "type" : "dog" }
{ "_id" : ObjectId("6225f93939108c22ab583667"), "name" : "Pluto", "type" : "dog" }
{ "_id" : ObjectId("6225fc3e39108c22ab58366c"), "name" : "Minnie", "type" : "mouse" }
save
是直接替换样式的,会直接根据_id
替换掉整个文档,应该是多用于自建_id
吧
> db.Disney.find()
{ "_id" : ObjectId("6225f8ed39108c22ab583664"), "name" : "Mickey", "type" : "mouse" }
{ "_id" : ObjectId("6225f90e39108c22ab583665"), "name" : "Donald", "type" : "duck" }
{ "_id" : ObjectId("6225f92839108c22ab583666"), "name" : "Goofy", "type" : "dog" }
{ "_id" : ObjectId("6225f93939108c22ab583667"), "name" : "Pluto", "type" : "dog" }
{ "_id" : ObjectId("6225fc3e39108c22ab58366c"), "name" : "Minnie", "type" : "mouse" }
> db.Disney.save({ "_id" : ObjectId("6225f92839108c22ab583666"), "name" : "Goofy"})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.Disney.find()
{ "_id" : ObjectId("6225f8ed39108c22ab583664"), "name" : "Mickey", "type" : "mouse" }
{ "_id" : ObjectId("6225f90e39108c22ab583665"), "name" : "Donald", "type" : "duck" }
{ "_id" : ObjectId("6225f92839108c22ab583666"), "name" : "Goofy" }
{ "_id" : ObjectId("6225f93939108c22ab583667"), "name" : "Pluto", "type" : "dog" }
{ "_id" : ObjectId("6225fc3e39108c22ab58366c"), "name" : "Minnie", "type" : "mouse" }
>
7.4 查询
7.4.1 全体查询
> db.Disney.find().pretty()
{
"_id" : ObjectId("6225f8ed39108c22ab583664"),
"name" : "Mickey",
"type" : "mouse"
}
{
"_id" : ObjectId("6225f90e39108c22ab583665"),
"name" : "Donald",
"type" : "duck"
}
{
"_id" : ObjectId("6225f92839108c22ab583666"),
"name" : "Goofy",
"type" : "dog"
}
{
"_id" : ObjectId("6225f93939108c22ab583667"),
"name" : "Pluto",
"type" : "dog"
}
{
"_id" : ObjectId("6225fc3e39108c22ab58366c"),
"name" : "Minnie",
"type" : "mouse"
}
>
7.4.2 AND
查询
例如我们要找一只名叫Minnie
的耗子
> db.Disney.find()
{ "_id" : ObjectId("6225f8ed39108c22ab583664"), "name" : "Mickey", "type" : "mouse" }
{ "_id" : ObjectId("6225f90e39108c22ab583665"), "name" : "Donald", "type" : "duck" }
{ "_id" : ObjectId("6225f92839108c22ab583666"), "name" : "Goofy", "type" : "dog" }
{ "_id" : ObjectId("6225f93939108c22ab583667"), "name" : "Pluto", "type" : "dog" }
{ "_id" : ObjectId("6225fc3e39108c22ab58366c"), "name" : "Minnie", "type" : "mouse" }
{ "_id" : ObjectId("62260283f30eb8653fdcae00"), "name" : "Minnie", "type" : "mouse" }
> db.Disney.find({name:'Minnie',type:'mouse'})
{ "_id" : ObjectId("6225fc3e39108c22ab58366c"), "name" : "Minnie", "type" : "mouse" }
{ "_id" : ObjectId("62260283f30eb8653fdcae00"), "name" : "Minnie", "type" : "mouse" }
>
7.4.3 OR
查询
例如我们要找狗和耗子:
> db.Disney.find()
{ "_id" : ObjectId("6225f8ed39108c22ab583664"), "name" : "Mickey", "type" : "mouse" }
{ "_id" : ObjectId("6225f90e39108c22ab583665"), "name" : "Donald", "type" : "duck" }
{ "_id" : ObjectId("6225f92839108c22ab583666"), "name" : "Goofy", "type" : "dog" }
{ "_id" : ObjectId("6225f93939108c22ab583667"), "name" : "Pluto", "type" : "dog" }
{ "_id" : ObjectId("6225fc3e39108c22ab58366c"), "name" : "Minnie", "type" : "mouse" }
{ "_id" : ObjectId("62260283f30eb8653fdcae00"), "name" : "Minnie", "type" : "mouse" }
> db.Disney.find({$or:[{type:'dog'},{type:'mouse'}]})
{ "_id" : ObjectId("6225f8ed39108c22ab583664"), "name" : "Mickey", "type" : "mouse" }
{ "_id" : ObjectId("6225f92839108c22ab583666"), "name" : "Goofy", "type" : "dog" }
{ "_id" : ObjectId("6225f93939108c22ab583667"), "name" : "Pluto", "type" : "dog" }
{ "_id" : ObjectId("6225fc3e39108c22ab58366c"), "name" : "Minnie", "type" : "mouse" }
{ "_id" : ObjectId("62260283f30eb8653fdcae00"), "name" : "Minnie", "type" : "mouse" }
7.4.4 联用AND
和OR
假如我们要找狗,高飞和布鲁托或者都可以:
> db.Disney.find()
{ "_id" : ObjectId("6225f8ed39108c22ab583664"), "name" : "Mickey", "type" : "mouse" }
{ "_id" : ObjectId("6225f90e39108c22ab583665"), "name" : "Donald", "type" : "duck" }
{ "_id" : ObjectId("6225f92839108c22ab583666"), "name" : "Goofy", "type" : "dog" }
{ "_id" : ObjectId("6225f93939108c22ab583667"), "name" : "Pluto", "type" : "dog" }
{ "_id" : ObjectId("6225fc3e39108c22ab58366c"), "name" : "Minnie", "type" : "mouse" }
{ "_id" : ObjectId("62260283f30eb8653fdcae00"), "name" : "Minnie", "type" : "mouse" }
> db.Disney.find({type:'dog',$or:[{name:'Goofy'},{name:'Pluto'}]})
{ "_id" : ObjectId("6225f92839108c22ab583666"), "name" : "Goofy", "type" : "dog" }
{ "_id" : ObjectId("6225f93939108c22ab583667"), "name" : "Pluto", "type" : "dog" }
7.4.5 排序
例如我们直接对全体的名字进行升序排列
> db.Disney.find()
{ "_id" : ObjectId("6225f8ed39108c22ab583664"), "name" : "Mickey", "type" : "mouse" }
{ "_id" : ObjectId("6225f90e39108c22ab583665"), "name" : "Donald", "type" : "duck" }
{ "_id" : ObjectId("6225f92839108c22ab583666"), "name" : "Goofy", "type" : "dog" }
{ "_id" : ObjectId("6225f93939108c22ab583667"), "name" : "Pluto", "type" : "dog" }
{ "_id" : ObjectId("6225fc3e39108c22ab58366c"), "name" : "Minnie", "type" : "mouse" }
{ "_id" : ObjectId("62260283f30eb8653fdcae00"), "name" : "Minnie", "type" : "mouse" }
> db.Disney.find().sort({name:1})
{ "_id" : ObjectId("6225f90e39108c22ab583665"), "name" : "Donald", "type" : "duck" }
{ "_id" : ObjectId("6225f92839108c22ab583666"), "name" : "Goofy", "type" : "dog" }
{ "_id" : ObjectId("6225f8ed39108c22ab583664"), "name" : "Mickey", "type" : "mouse" }
{ "_id" : ObjectId("6225fc3e39108c22ab58366c"), "name" : "Minnie", "type" : "mouse" }
{ "_id" : ObjectId("62260283f30eb8653fdcae00"), "name" : "Minnie", "type" : "mouse" }
{ "_id" : ObjectId("6225f93939108c22ab583667"), "name" : "Pluto", "type" : "dog" }
8.pyMongo
8.1 数据库
8.1.1 连接数据库
>>> import pymongo
>>> myclient=pymongo.MongoClient("mongodb://localhost:27017/")
8.1.2 新建数据库
>>> mydb=myclient["pydb"]
8.1.3 查看已有数据库
>>> myclient.list_database_names()
['admin', 'config', 'local', 'toy']
注意:空数据库不显示
8.2 集合
8.2.1 新建集合
>>> mycolc= mydb['col_set']
8.2.2 查看集合
>>> mydb.list_collection_names()
[]
注意:空集合不显示
8.2.3 删除集合
>>> mydb.list_collection
Collection(Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'pydb'), 'list_collection')
>>> mydb.list_collection_names()
['col_set']
>>> mycol
Collection(Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'pydb'), 'col_set')
>>> mycol.drop()
>>> mydb.list_collection_names()
[]
>>>
8.3 文档
8.3.1 插入单个文档
>>> mydict = {'name':'Mickey','type':'mouse'}
>>> mycol = mydb['col_set']
>>> mycol.insert_one(mydict)
<pymongo.results.InsertOneResult object at 0x7fc67af72200>
8.3.2 插入多个文档
>>> mylist = [
... { "name": "Tom", "age": "100", "url": "https://juejin.cn/user/3403743731649863" },
... { "name": "Mary", "age": "101", "url": "https://juejin.cn/user/3403743731649863" },
... { "name": "Timi", "age": "10", "url": "https://juejin.cn/user/3403743731649863" },
... ]
>>> x = mycol.insert_many(mylist)
>>> x.inserted_ids
[ObjectId('62260904816a6646b26646ae'), ObjectId('62260904816a6646b26646af'), ObjectId('62260904816a6646b26646b0')]
>>>
8.3.3 查询文档
8.3.3.1 查询一条数据
>>> mycol.find_one()
{'_id': ObjectId('62260864816a6646b26646ad'), 'name': 'Mickey', 'type': 'mouse'}
>>>
8.3.3.2 查询所有数据
>>> mycol.find()
<pymongo.cursor.Cursor object at 0x7fc67af5a490>
>>> [mycol.find()]
[<pymongo.cursor.Cursor object at 0x7fc67af5a520>]
>>> list(mycol.find())
[{'_id': ObjectId('62260864816a6646b26646ad'), 'name': 'Mickey', 'type': 'mouse'},
{'_id': ObjectId('62260904816a6646b26646ae'), 'name': 'Tom', 'age': '100', 'url': 'https://juejin.cn/user/3403743731649863'},
{'_id': ObjectId('62260904816a6646b26646af'), 'name': 'Mary', 'age': '101', 'url': 'https://juejin.cn/user/3403743731649863'},
{'_id': ObjectId('62260904816a6646b26646b0'), 'name': 'Timi', 'age': '10', 'url': 'https://juejin.cn/user/3403743731649863'}]
>>> [i for i in mycol.find()]
[{'_id': ObjectId('62260864816a6646b26646ad'), 'name': 'Mickey', 'type': 'mouse'},
{'_id': ObjectId('62260904816a6646b26646ae'), 'name': 'Tom', 'age': '100', 'url': 'https://juejin.cn/user/3403743731649863'},
{'_id': ObjectId('62260904816a6646b26646af'), 'name': 'Mary', 'age': '101', 'url': 'https://juejin.cn/user/3403743731649863'},
{'_id': ObjectId('62260904816a6646b26646b0'), 'name': 'Timi', 'age': '10', 'url': 'https://juejin.cn/user/3403743731649863'}]
>>> for i in mycol.find(): print(i)
...
{'_id': ObjectId('62260864816a6646b26646ad'), 'name': 'Mickey', 'type': 'mouse'}
{'_id': ObjectId('62260904816a6646b26646ae'), 'name': 'Tom', 'age': '100', 'url': 'https://juejin.cn/user/3403743731649863'}
{'_id': ObjectId('62260904816a6646b26646af'), 'name': 'Mary', 'age': '101', 'url': 'https://juejin.cn/user/3403743731649863'}
{'_id': ObjectId('62260904816a6646b26646b0'), 'name': 'Timi', 'age': '10', 'url': 'https://juejin.cn/user/3403743731649863'}
>>>
8.3.3.3 查询数据指定字段
>>> for i in mycol.find({},{ "_id": 0, "name": 1, "age": 1 }): print(i)
...
{'name': 'Mickey'}
{'name': 'Tom', 'age': '100'}
{'name': 'Mary', 'age': '101'}
{'name': 'Timi', 'age': '10'}
>>>
8.3.3.4 查询条件数据
>>> for i in mycol.find({ "name": "Tom" }): print(i)
...
{'_id': ObjectId('62260904816a6646b26646ae'), 'name': 'Tom', 'age': '100', 'url': 'https://juejin.cn/user/3403743731649863'}
>>>
8.3.3.5 查询指定条数记录
例如只要前三条:
>>> for i in mycol.find().limit(3): print(i)
...
{'_id': ObjectId('62260864816a6646b26646ad'), 'name': 'Mickey', 'type': 'mouse'}
{'_id': ObjectId('62260904816a6646b26646ae'), 'name': 'Tom', 'age': '100', 'url': 'https://juejin.cn/user/3403743731649863'}
{'_id': ObjectId('62260904816a6646b26646af'), 'name': 'Mary', 'age': '101', 'url': 'https://juejin.cn/user/3403743731649863'}
>>>
8.3.4 修改文档
>>> for i in mycol.find(): print(i)
...
{'_id': ObjectId('62260864816a6646b26646ad'), 'name': 'Mickey', 'type': 'mouse'}
{'_id': ObjectId('62260904816a6646b26646ae'), 'name': 'Tom', 'age': '100', 'url': 'https://juejin.cn/user/3403743731649863'}
{'_id': ObjectId('62260904816a6646b26646af'), 'name': 'Mary', 'age': '101', 'url': 'https://juejin.cn/user/3403743731649863'}
{'_id': ObjectId('62260904816a6646b26646b0'), 'name': 'Timi', 'age': '10', 'url': 'https://juejin.cn/user/3403743731649863'}
>>> myquery = { "age": "100" }
>>> newvalues = { "$set": { "age": "12345" } }
>>> mycol.update_one(myquery, newvalues)
<pymongo.results.UpdateResult object at 0x7fc67af72880>
>>> for i in mycol.find(): print(i)
...
{'_id': ObjectId('62260864816a6646b26646ad'), 'name': 'Mickey', 'type': 'mouse'}
{'_id': ObjectId('62260904816a6646b26646ae'), 'name': 'Tom', 'age': '12345', 'url': 'https://juejin.cn/user/3403743731649863'}
{'_id': ObjectId('62260904816a6646b26646af'), 'name': 'Mary', 'age': '101', 'url': 'https://juejin.cn/user/3403743731649863'}
{'_id': ObjectId('62260904816a6646b26646b0'), 'name': 'Timi', 'age': '10', 'url': 'https://juejin.cn/user/3403743731649863'}
>>>
8.3.5 排序数据
>>> for i in mycol.find().sort('age'): print(i)
...
{'_id': ObjectId('62260864816a6646b26646ad'), 'name': 'Mickey', 'type': 'mouse'}
{'_id': ObjectId('62260904816a6646b26646b0'), 'name': 'Timi', 'age': '10', 'url': 'https://juejin.cn/user/3403743731649863'}
{'_id': ObjectId('62260904816a6646b26646af'), 'name': 'Mary', 'age': '101', 'url': 'https://juejin.cn/user/3403743731649863'}
{'_id': ObjectId('62260904816a6646b26646ae'), 'name': 'Tom', 'age': '12345', 'url': 'https://juejin.cn/user/3403743731649863'}
>>>
8.3.6 删除文档
8.3.6.1 删除单个
>>> for i in mycol.find(): print(i)
...
{'_id': ObjectId('62260864816a6646b26646ad'), 'name': 'Mickey', 'type': 'mouse'}
{'_id': ObjectId('62260904816a6646b26646ae'), 'name': 'Tom', 'age': '12345', 'url': 'https://juejin.cn/user/3403743731649863'}
{'_id': ObjectId('62260904816a6646b26646af'), 'name': 'Mary', 'age': '101', 'url': 'https://juejin.cn/user/3403743731649863'}
{'_id': ObjectId('62260904816a6646b26646b0'), 'name': 'Timi', 'age': '10', 'url': 'https://juejin.cn/user/3403743731649863'}
>>> mycol.delete_one({ "name": "Timi" })
<pymongo.results.DeleteResult object at 0x7fc67af7bfc0>
>>> for i in mycol.find(): print(i)
...
{'_id': ObjectId('62260864816a6646b26646ad'), 'name': 'Mickey', 'type': 'mouse'}
{'_id': ObjectId('62260904816a6646b26646ae'), 'name': 'Tom', 'age': '12345', 'url': 'https://juejin.cn/user/3403743731649863'}
{'_id': ObjectId('62260904816a6646b26646af'), 'name': 'Mary', 'age': '101', 'url': 'https://juejin.cn/user/3403743731649863'}
>>>
8.3.6.2 删除所有
>>> for i in mycol.find(): print(i)
...
{'_id': ObjectId('62260864816a6646b26646ad'), 'name': 'Mickey', 'type': 'mouse'}
{'_id': ObjectId('62260904816a6646b26646ae'), 'name': 'Tom', 'age': '12345', 'url': 'https://juejin.cn/user/3403743731649863'}
{'_id': ObjectId('62260904816a6646b26646af'), 'name': 'Mary', 'age': '101', 'url': 'https://juejin.cn/user/3403743731649863'}
>>> x = mycol.delete_many({})
>>> x.deleted_count
3
>>> for i in mycol.find(): print(i)
...
>>>
MongoDB教程12-MongoDB更新文档 ↩︎