0
点赞
收藏
分享

微信扫一扫

python操作mongodb数据库-创建数据库与插入数据

眼君 2022-02-10 阅读 89

数据库、集合的创建

注意:数据库只有集合创建,集合插入数据后才会被创建(不然不会显示)

# 案例
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大数据感兴趣的朋友欢迎一起讨论交流, 请多指教!

举报

相关推荐

0 条评论