pyMongo
python远程连接mongodb数据库
1. 安装
pip install pymongo
2. 连接
import pymongo as pmg
myclient=pmg.MongoClient(host=<ipaddr>,port="27017",username="root",password="******",authSource="admin")
#获取数据库列表
dblist = myclient.list_database_names()
print(dblist)
3. 连接到集合
#切换到数据库
mydb=myclient[<dbname>]
mydb.authenticate(USERname,USERpwd)
#切换到集合
mycol=mydb[<colname>]
4. 插入文档到集合
mydoc={"name": "hello mongo 333", "age": "19"}
obj=mycol.insert_one(mydoc)
这里要注意的是在插入文档的时候键名也需要加引号变为字符串,否则会被python识别成未定义的变量
5.查找
5.1 查找一条记录
result=mycol.find_one({key1:value1,key2:value2})
#相当于sql语句:
select * from dbname.tablename where key1=value1 and key2=value2 limit 1
5.2 lt、gt、lte、gte
大小比较查找
result=mycol.find_one({key1:{"$lt":value1},key2:{"$gte":value2}})
#相当于sql语句:
select * from dbname.tablename where key1<value1 and key2>=value2 limit 1
5.3 and、or、not
逻辑条件下的查找
result=mycol.find_one({"$or":[key1:{"$lt":value1},key2:{"$gte":value2}]})
#相当于sql语句:
select * from dbname.tablename where key1<value1 or key2>=value2 limit 1
####################################
result=mycol.find_one({key1:{"$not":{"$lt":value1}}})
#其实也就是:
result=mycol.find_one({key1:{"$gte":value1}})
#相当于sql语句:
select * from dbname.tablename where key1>=value1 limit 1
5.4 查找多条记录
result=mycol.find({key1:value1,key2:value2})
#相当于sql语句:
select * from dbname.tablename where key1=value1 and key2=value2
#查询到的结果实际上是一个迭代器,可调用next函数或者for循环依次取值
next(result)
#################
for re in result:
print(re)