数据库、集合的创建
注意:数据库只有集合创建,集合插入数据后才会被创建(不然不会显示)
# 案例
import pymongo
myclient = pymongo.MongoClient('mongodb://localhost:27017/') # 连接数据库
dblist1 = myclient.list_database_names() # 获取所有数据库列表
print(dblist1)
if 'test' not in dblist1: # 如果test数据库没有存在
mydb = myclient["test"] # 创建数据库
print('test数据库创建成功')
mycol = mydb["set1"] # 创建集合
mydict = {"name": "RUNOOB", "alexa": "10000", "url": "https://www.runoob.com"} # 待插数据
x = mycol.insert_one(mydict) # 插入数据
dblist2 = myclient.list_database_names() # 获取创建数据库后所有数据库列表
print('现有数据库列表:{0}'.format(dblist2))
else:
print('test数据库已存在')
插入集合数据
单条数据插入
集合中插入文档使用 insert_one() 方法,该方法的第一参数是字典 name => value 对。
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/") # 连接数据库
mydb = myclient["test"] # 创建数据库
mycol = mydb["sites"] # 创建集合
mydict = {"name": "RUNOOB", "alexa": "10000", "url": "https://www.runoob.com"} # 准备字典数据
mycol.insert_one(mydict) # 插入集合数据
print('数据库test创建成功!')
返回_id字段
insert_one() 方法返回 InsertOneResult 对象,该对象包含 inserted_id 属性,它是插入文档的 id 值。
import pymongo
myclient = pymongo.MongoClient('mongodb://localhost:27017/')
mydb = myclient['test']
mycol = mydb["sites"]
mydict = {"name": "Google", "alexa": "1", "url": "https://www.google.com"}
x = mycol.insert_one(mydict)
print(x.inserted_id) # 返回id字段(61fa98d6d1d019bc479128a7)
插入多个文档
集合中插入多个文档使用 insert_many() 方法,该方法的第一参数是字典列表。
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["test"]
mycol = mydb["sites"]
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)
插入指定_id的多个文档
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["test"]
mycol = mydb["site2"]
mylist = [
{"_id": 1, "name": "RUNOOB", "cn_name": "菜鸟教程"},
{"_id": 2, "name": "Google", "address": "Google 搜索"},
{"_id": 3, "name": "Facebook", "address": "脸书"},
{"_id": 4, "name": "Taobao", "address": "淘宝"},
{"_id": 5, "name": "Zhihu", "address": "知乎"}
]
x = mycol.insert_many(mylist)
# 输出插入的所有文档对应的 _id 值
print(x.inserted_ids) # [1, 2, 3, 4, 5]
打卡第49天,对python大数据感兴趣的朋友欢迎一起讨论交流, 请多指教!