深入了解 Python MongoDB 操作:排序、删除、更新、结果限制全面解析

Python MongoDB 排序

对结果进行排序

使用 sort() 方法对结果进行升序或降序排序。 sort() 方法接受一个参数用于“字段名”,一个参数用于“方向”(升序是默认方向)。

示例

按名称按字母顺序对结果进行排序:

1import pymongo 2 3myclient = pymongo.MongoClient("mongodb://localhost:27017/") 4mydb = myclient["mydatabase"] 5mycol = mydb["customers"] 6 7mydoc = mycol.find().sort("name") 8 9for x in mydoc: 10 print(x)

Python MongoDB 删除文档

删除文档

要删除一个文档,我们使用 delete_one() 方法。 delete_one() 方法的第一个参数是一个查询对象,用于定义要删除的文档。注意:如果查询找到多个文档,仅删除第一个出现的文档。

示例

删除地址为“Mountain 21”的文档:

1import pymongo 2 3myclient = pymongo.MongoClient("mongodb://localhost:27017/") 4mydb = myclient["mydatabase"] 5mycol = mydb["customers"] 6 7myquery = { "address": "Mountain 21" } 8 9mycol.delete_one(myquery)

删除多个文档

要删除多个文档,使用 delete_many() 方法。 delete_many() 方法的第一个参数是一个查询对象,用于定义要删除的文档。

示例

删除所有地址以字母S开头的文档:

1import pymongo 2 3myclient = pymongo.MongoClient("mongodb://localhost:27017/") 4mydb = myclient["mydatabase"] 5mycol = mydb["customers"] 6 7myquery = { "address": {"$regex": "^S"} } 8 9x = mycol.delete_many(myquery) 10 11print(x.deleted_count, " documents deleted.")

删除集合中的所有文档

要删除集合中的所有文档,请将一个空的查询对象传递给 delete_many() 方法:

示例

删除“customers”集合中的所有文档:

1import pymongo 2 3myclient = pymongo.MongoClient("mongodb://localhost:27017/") 4mydb = myclient["mydatabase"] 5mycol = mydb["customers"] 6 7x = mycol.delete_many({}) 8 9print(x.deleted_count, " documents deleted.")

Python MongoDB 删除集合

删除集合

您可以使用 drop() 方法删除表,或者在 MongoDB 中称为集合。

示例

删除“customers”集合:

1import pymongo 2 3myclient = pymongo.MongoClient("mongodb://localhost:27017/") 4mydb = myclient["mydatabase"] 5mycol = mydb["customers"] 6 7mycol.drop()

如果成功删除集合, drop() 方法将返回 true,如果集合不存在,则返回 false

Python MongoDB 更新

更新集合

您可以使用 update_one() 方法更新记录,或者在 MongoDB 中称为文档。 update_one() 方法的第一个参数是一个查询对象,用于定义要更新的文档。注意:如果查询找到多个记录,仅更新第一个出现的记录。第二个参数是一个对象,定义文档的新值。

示例

将地址从“Valley 345”更改为“Canyon 123”:

1import pymongo 2 3myclient = pymongo.MongoClient("mongodb://localhost:27017/") 4mydb = myclient["mydatabase"] 5mycol = mydb["customers"] 6 7myquery = { "address": "Valley 345" } 8newvalues = { "$set": { "address": "Canyon 123" } } 9 10mycol.update_one(myquery, newvalues) 11 12# 更新后打印 "customers": 13for x in mycol.find(): 14 print(x)

更新多个

要更新满足查询条件的所有文档,请使用 update_many() 方法。

示例

更新所有地址以字母“S”开头的文档:

1import pymongo 2 3myclient = pymongo.MongoClient("mongodb://localhost:27017/") 4mydb = myclient["mydatabase"] 5mycol = mydb["customers"] 6 7myquery = { "address": { "$regex": "^S" } } 8newvalues = { "$set": { "name": "Minnie" } } 9 10x = mycol.update_many(myquery, newvalues) 11 12print(x.modified_count, "documents updated.")

Python MongoDB 限制结果

为了在 MongoDB 中限制结果,我们使用 limit() 方法。 limit() 方法接受一个参数,即定义要返回多少个文档的数字。

假设你有一个“customers”集合:

1Customers 2{'_id': 1, 'name': 'John', 'address': 'Highway 37'} 3{'_id': 2, 'name': 'Peter', 'address': 'Lowstreet 27'} 4{'_id': 3, 'name': 'Amy', 'address': 'Apple st 652'} 5{'_id': 4, 'name': 'Hannah', 'address': 'Mountain 21'} 6{'_id': 5, 'name': 'Michael', 'address': 'Valley 345'} 7{'_id': 6, 'name': 'Sandy', 'address': 'Ocean blvd 2'} 8{'_id': 7, 'name': 'Betty', 'address': 'Green Grass 1'} 9{'_id': 8, 'name': 'Richard', 'address': 'Sky st 331'} 10{'_id': 9, 'name': 'Susan', 'address': 'One way 98'} 11{'_id': 10, 'name': 'Vicky', 'address': 'Yellow Garden 2'} 12{'_id': 11, 'name': 'Ben', 'address': 'Park Lane 38'} 13{'_id': 12, 'name': 'William', 'address': 'Central st 954'} 14{'_id': 13, 'name': 'Chuck', 'address': 'Main Road 989'} 15{'_id': 14, 'name': 'Viola', 'address': 'Sideway 1633'}

示例

将结果限制为只返回5个文档:

1import pymongo 2 3myclient = pymongo.MongoClient("mongodb://localhost:27017/") 4mydb = myclient["mydatabase"] 5mycol = mydb["customers"] 6 7myresult = mycol.find().limit(5) 8 9# 打印结果: 10for x in myresult: 11 print(x)

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取

最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

点赞
收藏

评论区

加载中...

相关推荐

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

java 数据结构(十二):Collections工具类的使用

Collections工具类1.作用:操作Collection和Map的工具类2.常用方法:reverse(List):反转List中元素的顺序shuffle(List):对List集合元素进行随机排序sort(List):根据元素的自然顺序对指定List集合元素升序排序sort(List,Comparator)

mysql 数据库group by 按排序取值

mysql数据库groupby按排序取值 mysql5.7以后,groupby想要按照排序的顺序来取值,在子结果集中要有union,groupby等操作,不然按照id默认排序来取值示例:数据库:score表id user\_id num1 100     952 100     963

Python MySQL Order By

对结果排序可以使用ORDERBY语句,按升序或降序对结果排序。默认情况下,ORDERBY关键字按升序排列结果。要按降序排列,可使用DESC关键字。示例按name的字母顺序排列结果:importmysql.connectormydbmysql.connector.connect

Golang数组去重

方法一://这种发放适用于string,int,float等切片,会对切片中的元素进行排序funcSliceRemoveDuplicates(slicestring)string{sort.Strings(slice)i:0varjint

C#.NET 对HashTable数组进行按值排序

C.NET对HashTable数组进行按值排序  最近做了一个项目,需要对一个2维数组的值进行排序然后再取出对应的Key值。开始是用HashTable做的,不过HashTable中的排序只是对Key进行排序,如果想对值进行排序得用其它办法。下面我就把这种方法说下:一.我们先假设一个二维数组,用HashTab