上篇博客我们简单了解了mongoDB的存储结构。
那么现在到了应用环节,数据库无非就是增删改查(CURD)。
CURD
为了简单使用,我们暂时不考虑原子性操作,只是简单的增删改查。
当我们的程序中出现了多线程或者多进程再或者协程的时候就要小心了,异步就会涉及到同步数据的问题,pymongo是个成熟的框架,自然考虑到了这点,我们以后再说。
增
创建一个文档(document)。
pymongo中给集合对象提供了insert_one()方法,用来插入一条数据。
我们接着上一章的代码写。
collection = db['your_set_name']
result = collection.insert_one(document)
your_set_name就是你要操作集合的名字。
image.png
插入成功后会返回一个InsertOneResult对象。
删
删除一个文档。
pymongo中给集合对象提供了delete_one(query_filter)方法,用来插入一条数据。
query_filter参数需要传入一个字典,里面的键值对就是你的查询条件。
删除存在两种情况,一种情况是找到了符合删除条件的文档,另一种情况是没找到符合删除条件的文档。
先看代码:
query_filter = {
'name': 'bbb'
}
result = test_collection.delete_one(query_filter)
在增加一条时,我们插入了一个文档,这次我们要删除的是name='bbb'的文档。
但是数据库中没有符合条件的记录,我们就删除了一条不存在的记录。
pymongo依旧会返回一个对象,这不过这次这个对象是DeleteResult。
那我们怎么判断是否删除成功了呢?
DeleteResult对象有一个delete_count的属性,如果返回0,说明根本没有符合删除条件的文档。如果返回1,则说明删除成功。
以上是我猜的,为了证明猜测,我们把查询条件改为'name': 'aaa'。
并打印DeleteResult对象的delete_count属性。
结果如图:
image.png
这次返回delete_count属性的值为1,说明找到并删除了一个符合删除条件的文档。
改
困了,明天再写。告辞
网友评论