mongodb
MongoDB的数据库和集合能够自动创建
- 安装模块
pip install pymongo
- demo
#!/usr/bin/python3
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["runoobdb"]
dblist = myclient.list_database_names()
# dblist = myclient.database_names()
print('开始')
if "runoobdb" in dblist:
print("数据库已存在!")
mycol = mydb["sites"]
mydict = {"name": "RUNOOB", "alexa": "10000", "url": "https://www.runoob.com"}
# 插入数据
def insertData():
x = mycol.insert_one(mydict)
# 插入多个文档
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)
# 输出插入的所有文档对应的 _id 值
print(x.inserted_ids)
# 修改数据
'''
在 MongoDB 中使用 update_one() 方法修改文档中的记录。该方法第一个参数为查询的条件,第二个参数为要修改的字段。
如果查找到的匹配数据多于一条,则只会修改第一条。
'''
def updateData():
myquery = {"alexa": "10000"}
newvalues = {"$set": {"alexa": "12345"}}
mycol.update_one(myquery, newvalues)
# 输出修改后的 "sites" 集合
for x in mycol.find():
print(x)
'''
如果要修改所有匹配到的记录,可以使用 update_many()。
'''
def updateManyData():
myquery = {"name": {"$regex": "^F"}}
newvalues = {"$set": {"alexa": "123"}}
x = mycol.update_many(myquery, newvalues)
print(x.modified_count, "文档已修改")
'''
sort() 方法可以指定升序或降序排序。
sort() 方法第一个参数为要排序的字段,第二个字段指定排序规则,1 为升序,-1 为降序,默认为升序。
'''
def sortData():
mydoc = mycol.find().sort("alexa")
for x in mydoc:
print(x)
print('==========')
mydoc = mycol.find().sort("alexa", -1)
for x in mydoc:
print(x)
'''删除文档'''
def deleteData():
myquery = {"name": "Taobao"}
mycol.delete_one(myquery)
# 删除后输出
for x in mycol.find():
print(x)
print('=========删除多个文档===============')
myquery = {"name": {"$regex": "^F"}}
x = mycol.delete_many(myquery)
print(x.deleted_count, "个文档已删除")
print('========删除集合中的所有文档========')
x = mycol.delete_many({})
print(x.deleted_count, "个文档已删除")
print('========删除集合========')
# 如果删除成功 drop() 返回 true,如果删除失败(集合不存在)则返回 false。
mycol.drop()
if __name__ == '__main__':
#updateData()
#updateManyData()
#sortData()
deleteData()
网友评论