翼度科技»论坛 编程开发 python 查看内容

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

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
Python MongoDB 排序

对结果进行排序

使用 sort() 方法对结果进行升序或降序排序。 sort() 方法接受一个参数用于“字段名”,一个参数用于“方向”(升序是默认方向)。
示例
按名称按字母顺序对结果进行排序:
  1. import pymongo
  2. myclient = pymongo.MongoClient("mongodb://localhost:27017/")
  3. mydb = myclient["mydatabase"]
  4. mycol = mydb["customers"]
  5. mydoc = mycol.find().sort("name")
  6. for x in mydoc:
  7.   print(x)
复制代码
Python MongoDB 删除文档

删除文档

要删除一个文档,我们使用 delete_one() 方法。 delete_one() 方法的第一个参数是一个查询对象,用于定义要删除的文档。注意:如果查询找到多个文档,仅删除第一个出现的文档。
示例
删除地址为“Mountain 21”的文档:
  1. import pymongo
  2. myclient = pymongo.MongoClient("mongodb://localhost:27017/")
  3. mydb = myclient["mydatabase"]
  4. mycol = mydb["customers"]
  5. myquery = { "address": "Mountain 21" }
  6. mycol.delete_one(myquery)
复制代码
删除多个文档

要删除多个文档,使用 delete_many() 方法。 delete_many() 方法的第一个参数是一个查询对象,用于定义要删除的文档。
示例
删除所有地址以字母S开头的文档:
  1. import pymongo
  2. myclient = pymongo.MongoClient("mongodb://localhost:27017/")
  3. mydb = myclient["mydatabase"]
  4. mycol = mydb["customers"]
  5. myquery = { "address": {"$regex": "^S"} }
  6. x = mycol.delete_many(myquery)
  7. print(x.deleted_count, " documents deleted.")
复制代码
删除集合中的所有文档

要删除集合中的所有文档,请将一个空的查询对象传递给 delete_many() 方法:
示例
删除“customers”集合中的所有文档:
  1. import pymongo
  2. myclient = pymongo.MongoClient("mongodb://localhost:27017/")
  3. mydb = myclient["mydatabase"]
  4. mycol = mydb["customers"]
  5. x = mycol.delete_many({})
  6. print(x.deleted_count, " documents deleted.")
复制代码
Python MongoDB 删除集合

删除集合

您可以使用 drop() 方法删除表,或者在 MongoDB 中称为集合。
示例
删除“customers”集合:
  1. import pymongo
  2. myclient = pymongo.MongoClient("mongodb://localhost:27017/")
  3. mydb = myclient["mydatabase"]
  4. mycol = mydb["customers"]
  5. mycol.drop()
复制代码
如果成功删除集合, drop() 方法将返回 true,如果集合不存在,则返回 false。
Python MongoDB 更新

更新集合

您可以使用 update_one() 方法更新记录,或者在 MongoDB 中称为文档。 update_one() 方法的第一个参数是一个查询对象,用于定义要更新的文档。注意:如果查询找到多个记录,仅更新第一个出现的记录。第二个参数是一个对象,定义文档的新值。
示例
将地址从“Valley 345”更改为“Canyon 123”:
  1. import pymongo
  2. myclient = pymongo.MongoClient("mongodb://localhost:27017/")
  3. mydb = myclient["mydatabase"]
  4. mycol = mydb["customers"]
  5. myquery = { "address": "Valley 345" }
  6. newvalues = { "$set": { "address": "Canyon 123" } }
  7. mycol.update_one(myquery, newvalues)
  8. # 更新后打印 "customers":
  9. for x in mycol.find():
  10.   print(x)
复制代码
更新多个

要更新满足查询条件的所有文档,请使用 update_many() 方法。
示例
更新所有地址以字母“S”开头的文档:
  1. import pymongo
  2. myclient = pymongo.MongoClient("mongodb://localhost:27017/")
  3. mydb = myclient["mydatabase"]
  4. mycol = mydb["customers"]
  5. myquery = { "address": { "$regex": "^S" } }
  6. newvalues = { "$set": { "name": "Minnie" } }
  7. x = mycol.update_many(myquery, newvalues)
  8. print(x.modified_count, "documents updated.")
复制代码
Python MongoDB 限制结果

为了在 MongoDB 中限制结果,我们使用 limit() 方法。 limit() 方法接受一个参数,即定义要返回多少个文档的数字。
假设你有一个“customers”集合:
  1. Customers
  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个文档:
  1. import pymongo
  2. myclient = pymongo.MongoClient("mongodb://localhost:27017/")
  3. mydb = myclient["mydatabase"]
  4. mycol = mydb["customers"]
  5. myresult = mycol.find().limit(5)
  6. # 打印结果:
  7. for x in myresult:
  8.   print(x)
复制代码
最后

为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding,关注后即可获取
最新文章推送
看完如果觉得有帮助,欢迎 点赞、收藏、关注

来源:https://www.cnblogs.com/xiaowange/p/17966414
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具