前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理
以下文章来源于我偶像龟叔 ,作者我偶像龟叔
1、pymongo安装
<code><span class="hljs-attribute">pip install <a href="https://www.gaodaima.com/tag/pymongo" title="查看更多关于pymongo的文章" target="_blank">pymongo</a></span></code>
www#gaodaima.com来源gao($daima.com搞@代@#码(网搞代码
2、MongoClient连接(连接池)
MongoClient是MongoDB的客户端代理对象,可以用来执行增删查改操作,而且还内置了连接池。
<code>=<span class="hljs-keyword">import pymongo client = pymongo.MongoClient(host=<span class="hljs-string">"localhost", port=<span class="hljs-number">27017) <span class="hljs-comment">#建立连接池</span></span></span></span></code>
3、创建数据库与集合
创建数据库与集合后,需要在集合插入数据,数据库与集合才会真正创建。
<code><span class="hljs-attr">_db = client[<span class="hljs-string">"test_database"] <span class="hljs-comment">#创建数据库 <span class="hljs-attr">_col = _db[<span class="hljs-string">"test_collection"] <span class="hljs-comment">#创建集合</span></span></span></span></span></span></code>
4、添加数据
添加数据后,数据库与集合才是真正意义上的创建完成:
<code><span class="hljs-comment"># 插入单条数据 data = { <span class="hljs-string">"author": <span class="hljs-string">"Mike", <span class="hljs-string">"tags": [<span class="hljs-string">"mongodb", <span class="hljs-string">"python", <span class="hljs-string">"pymongo"], } <span class="hljs-comment"># 此处插入一条数据,打印结果数据库与集合都创建了 insert = _col.insert_one(data) <span class="hljs-comment"># <pymongo.results.InsertOneResult object at 0x0000000003E99488> _col_id = insert.inserted_id print(client.list_database_names()) <span class="hljs-comment"># 结果:["test_database"] print(_db.list_collection_names()) <span class="hljs-comment"># 结果:["test_collection"] <span class="hljs-comment"># 批量插入数据 many_data = [ { <span class="hljs-string">"author": <span class="hljs-string">"Mike", <span class="hljs-string">"tags": [<span class="hljs-string">"mongodb", <span class="hljs-string">"python", <span class="hljs-string">"pymongo"], }, { <span class="hljs-string">"author": <span class="hljs-string">"Eliot", <span class="hljs-string">"tags": [<span class="hljs-string">"java", <span class="hljs-string">"docker", <span class="hljs-string">"Spring"], } ] insert_many = _col.insert_many(many_data) <span class="hljs-comment"># <pymongo.results.InsertManyResult object at 0x0000000003E99408> _col_ids = insert_many.inserted_ids</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code>
5、查找、修改、删除数据
示例代码如下:
<code><span class="hljs-comment"># 查找单个集合 info = _col.find_one() info_2 = _col.find_one({<span class="hljs-string">"author": <span class="hljs-string">"Mike"}) <span class="hljs-comment">#带条件 <span class="hljs-comment"># 查找全部集合 infoAll = _col.find() infoAll_2 = _col.find({<span class="hljs-string">"_id": _col_id}) <span class="hljs-comment">#带条件 <span class="hljs-comment"># -------------------------find end----------------------- <span class="hljs-comment"># 修改数据 <span class="hljs-built_in">where = {<span class="hljs-string">"author": <span class="hljs-string">"Mike"} update = {<span class="hljs-string">"$set": {<span class="hljs-string">"author": <span class="hljs-string">"Mike_2"}} _col.update_one(<span class="hljs-built_in">where, update) _col.update_many(<span class="hljs-built_in">where, update) <span class="hljs-comment"># -------------------------update end----------------------- <span class="hljs-comment"># 删除数据 <span class="hljs-built_in">where = {<span class="hljs-string">"author": <span class="hljs-string">"Mike"} _col.delete_one(<span class="hljs-built_in">where) <span class="hljs-comment">#删除条件单条数据 _col.delete_many(<span class="hljs-built_in">where) <span class="hljs-comment">#删除条件多条数据 _col.delete_many({}) <span class="hljs-comment">#删除所有数据 _col.drop() <span class="hljs-comment">#删除集合</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code>
6、杂项
示例代码如下:
<code><span class="hljs-comment"># 统计数量 <span class="hljs-attr">count = _col.count_documents({}) <span class="hljs-comment">#花括号条件为空 <span class="hljs-comment"># 排序 <span class="hljs-attr">sort = _col.find({}).sort(<span class="hljs-string">"author")</span></span></span></span></span></span></code>
7、索引
示例代码如下:
<code><span class="hljs-string">""" 索引 pymongo.ASCENDING : 1 pymongo.DESCENDING : -1 索引对排序的规则: 1、单键索引:排序规则可以是任意方向 2、复合索引:所有的键必须"全部相同"与"全部不相同" 该博客有很好的解释:https://www.gaodaima.com/jerryJavaCoding/article/details/82317840 """ _col.create_index([(<span class="hljs-string">"a", pymongo.DESCENDING)]) _col.create_indexes({<span class="hljs-string">"a": pymongo.ASCENDING, <span class="hljs-string">"b": pymongo.DESCENDING}) _col.drop_index(<span class="hljs-string">"a")</span></span></span></span></span></code>