0


2-4 Python 访问MongoDB

2-4 Python 访问MongoDB

第一关:python连接MongoDB写入数据

1、导入pymongo库

import pymongo

2、使用MongoClient对象创建与数据库服务器的连接:

(1)与数据库访问器连接

client= pymongo.MongoClient(host='127.0.0.1',port=12717)

(2)连接到具体的mongodb服务器或副本集:

client=pymongo.MongoClient(host='10.90.9.102',port=12718)

client=pymongo.MongoClient(host=’10.90.9.101:27018,10.90.9.102: 12718,10.90.9.103:27018')

创建数据库 runoobdb :

1、mydb = client["runoobdb"] mydb(相当于别名吧)=client[“数据库名称”]

2、db=client.mydb db=client.databaseName 有则访问,无则创建!!!

创建集合:collection:

mycol=mydb["collection"]

3、访问数据库

创建MongoClient实例后,就可以访问服务器中的任何数据。

如果要访问一个数据库,可以将其当作属性一样进行访问:

db = client.myDB

也可以使用函数方式访问,如果不存在数据库,则系统会自动创建数据库

db = client.get_database("myDB")

注意:

在 MongoDB 中,数据库只有在内容插入后才会创建! 就是说,数据库创建后要创建集合(数据表)并插入一个文档(记录),数据库才会真正创建。

4、集合操作

(1)插入文档

在数据库中存储数据时,首先指定使用的集合,然后使用集合的insert_one()方法插入文档

mydict = { "name": "RUNOOB", "alexa": "10000", "url": "https://www.runoob.com" }

x = mycol.insert_one(mydict)

**(2)**可以使用方法insert_many()同时插入多个文档。

mylist = [

{ "name": "Taobao", "alexa": "100", "url": "https://www.taobao.com" },

{ "name": "QQ", "alexa": "101", "url": "https://www.qq.com" },

{ "name": "Facebook", "alexa": "10", "url": "https://www.facebook.com" },

{ "name": "知乎", "alexa": "103", "url": "https://www.zhihu.com" },

{ "name": "Github", "alexa": "109", "url": "https://www.github.com" }

]

x = mycol.insert_many(mylist)

5、输出所有插入文档的_id值

print(x.inserted_ids)

第二关:检索文档

使用find()方法来查询指定字段的数据,将要返回的字段对应值设置为 1。

示例:

import pymongo

myclient= pymongo.MongoClient("mongodb://localhost:27017/")

mydb = myclient["runoobdb"]

mycol = mydb["sites"] //创建数据库与集合

示例1、//查询mycol的sites集合中的所有数据并且输出:

for x in mycol.find():

print(x)

用python测试

示例2、//_id为0不输出,输出name和alexa部分的字段 :

for x in mycol.find({},{ "_id": 0, "name": 1, "alexa": 1 }):

print(x)** **

示例3、//会报错

for x in mycol.find({},{ "name": 1, "alexa": 0 }):

print(x)

示例4、查询姓名为RUNOOB的,将查询存储到myquery里面,将结果存储到mydoc里面

myquery = { "name": "RUNOOB" }

mydoc = mycol.find(myquery)

for x in mydoc:

print(x)

编程测试:

第三关:更新数据

1、更新数据

my_set.update( #查询条件,#update的对象和一些更新的操作符)

update_one() 方法只能修匹配到的第一条记录

update_many() 修改所有匹配到的记录

示例:修改名字以F开头的alexa为“123“:

myquery = { "name": { "$regex": "^F" } }

newvalues = { "$set": { "alexa": "123" } }

x = mycol.update_many(myquery, newvalues)

print(x.modified_count, "文档已修改")

2、删除数据

delete_one() 方法来删除一个文档,该方法第一个参数为查询对象,指定要删除哪些数据。

delete_many() 方法来删除多个文档,该方法第一个参数为查询对象,指定要删除哪些数据。

示例:删除名字以F开头的信息

myquery = { "name": {"$regex": "^F"} }

x = mycol.delete_many(myquery)

print(x.deleted_count, "个文档已删除")

编程测试:

标签: mongodb nosql hbase

本文转载自: https://blog.csdn.net/qq_51697761/article/details/124308631
版权归原作者 00的小尾巴 所有, 如有侵权,请联系我们删除。

“2-4 Python 访问MongoDB”的评论:

还没有评论