python中的mongdb操作

mongdb数据库,最基本的操作当然还是增删改查,详见例子。

插入数据,可以用insert(),insert_one(),insert_many(),详见例子。插入之后,每一条数据会有一个id,我们也可以在插入前自己指定id,然后再插入。如下:

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)

和mysql数据库的比较,mongdb中的collection类似于mysql数据库中的表;mongdb中的collection.find()函数类似于mysql中的select * from table,都是查询所有数据的意思。

例子:

import pandas as pd
import pymongo

# 连接数据库服务器,获取客户端对象
mongo_client = pymongo.MongoClient("localhost",27017)

# 获取数据库,如果原先没有该数据库就创建该数据库
db = mongo_client.myDB  # 这个myDB就是数据库的名字
# db = mongo_client['myDB']  # 也可以用这个写法

# 获取该数据库的集合,如果原先该数据库中没有该集合就创建该集合
my_collection = db.myCollection  # myCollection就是集合的名字,可以把这个集合理解为mysql数据库中的表
# my_collection = db['myCollection']  # 也可以用这个写法

# 插入数据
tom={'name':'Tom','age':18,'sex':'男','hobbies':['吃饭','睡觉','打豆豆']}
alice={'name':'Alice','age':19,'sex':'女','hobbies':['读书','跑步','弹吉他']}
tom_id= my_collection.insert(tom)  # 如果是插入一条数据,也可以用insert_one()函数,返回值是id值
alice_id= my_collection.insert(alice)
print("tom_id:",tom_id)  # 也可以用tom_id.inserted_id来获得tom_id
print("alice_id:",alice_id)
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"},
]
mylist_id = my_collection.insert_many(mylist)
print("mylist_id:",mylist_id.inserted_ids)  # inserted_ids可以用来获得mylist里面的id

print("——"*50)
# 查询
cursor=my_collection.find()  # 类似于mysql里面的select * 操作,来获取这个collection中的全部条目
print(cursor.count())   # 获取条目的个数
for item in cursor:
    print(item)

print("——"*50)
# 修改
my_collection.update({'name':'Tom'},{'$set':{'hobbies':['向Alice学习读书','跟Alice一起跑步','向Alice学习弹吉他']}})
for item in my_collection.find():
    print(item)

print("——"*50)
# 删除
my_collection.remove({'name':'Tom'})  # 删除含{'name':'Tom'}的条目
# my_collection.remove()  # 删除collection中的所有数据
for item in my_collection.find():
    print(item)

输出:

tom_id: 5c6908880e20aa1b7cea57a4
alice_id: 5c6908880e20aa1b7cea57a5
mylist_id: [ObjectId('5c6908880e20aa1b7cea57a6'), ObjectId('5c6908880e20aa1b7cea57a7'), ObjectId('5c6908880e20aa1b7cea57a8')]
————————————————————————————————————————————————————————————————————————————————————————————————————
5
{'age': 18, 'name': 'Tom', '_id': ObjectId('5c6908880e20aa1b7cea57a4'), 'hobbies': ['吃饭', '睡觉', '打豆豆'], 'sex': '男'}
{'age': 19, 'name': 'Alice', '_id': ObjectId('5c6908880e20aa1b7cea57a5'), 'hobbies': ['读书', '跑步', '弹吉他'], 'sex': '女'}
{'name': 'Taobao', '_id': ObjectId('5c6908880e20aa1b7cea57a6'), 'alexa': '100', 'url': 'https://www.taobao.com'}
{'name': 'QQ', '_id': ObjectId('5c6908880e20aa1b7cea57a7'), 'alexa': '101', 'url': 'https://www.qq.com'}
{'name': 'Facebook', '_id': ObjectId('5c6908880e20aa1b7cea57a8'), 'alexa': '10', 'url': 'https://www.facebook.com'}
————————————————————————————————————————————————————————————————————————————————————————————————————
{'age': 18, 'name': 'Tom', '_id': ObjectId('5c6908880e20aa1b7cea57a4'), 'hobbies': ['向Alice学习读书', '跟Alice一起跑步', '向Alice学习弹吉他'], 'sex': '男'}
{'age': 19, 'name': 'Alice', '_id': ObjectId('5c6908880e20aa1b7cea57a5'), 'hobbies': ['读书', '跑步', '弹吉他'], 'sex': '女'}
{'name': 'Taobao', '_id': ObjectId('5c6908880e20aa1b7cea57a6'), 'alexa': '100', 'url': 'https://www.taobao.com'}
{'name': 'QQ', '_id': ObjectId('5c6908880e20aa1b7cea57a7'), 'alexa': '101', 'url': 'https://www.qq.com'}
{'name': 'Facebook', '_id': ObjectId('5c6908880e20aa1b7cea57a8'), 'alexa': '10', 'url': 'https://www.facebook.com'}
————————————————————————————————————————————————————————————————————————————————————————————————————
{'age': 19, 'name': 'Alice', '_id': ObjectId('5c6908880e20aa1b7cea57a5'), 'hobbies': ['读书', '跑步', '弹吉他'], 'sex': '女'}
{'name': 'Taobao', '_id': ObjectId('5c6908880e20aa1b7cea57a6'), 'alexa': '100', 'url': 'https://www.taobao.com'}
{'name': 'QQ', '_id': ObjectId('5c6908880e20aa1b7cea57a7'), 'alexa': '101', 'url': 'https://www.qq.com'}
{'name': 'Facebook', '_id': ObjectId('5c6908880e20aa1b7cea57a8'), 'alexa': '10', 'url': 'https://www.facebook.com'}

参考网址:https://blog.csdn.net/topleeyap/article/details/79029530

查询mongdb中的数据库和collection,如下:

import pymongo

# 连接数据库服务器,获取客户端对象
myclient = pymongo.MongoClient('mongodb://localhost:27017/')

# dblist = myclient.list_database_names()
dblist = myclient.database_names()  # 查看数据库中的所有的数据库名,返回值是一个list
# database_names 在最新版本的 Python 中已废弃,Python3.7+ 之后的版本改为了 list_database_names()。
if "myDB" in dblist:
  print("myDB数据库已存在!")

# 获取数据库,如果原先没有该数据库就创建该数据库
mydb = myclient['myDB']

# collist = mydb.list_collection_names()
collist = mydb.collection_names()  # 查看mydb的所有collection,返回值是一个list
# collection_names 在最新版本的 Python 中已废弃,Python3.7+ 之后的版本改为了 list_collection_names()。
if "sites" in collist:  # 判断 sites 集合是否存在
    print("sites 集合已存在!")
elif "myCollection" in collist:
    print("myCollection 集合已存在!")
else:
    print("no collection")

输出:

myDB数据库已存在!
myCollection 集合已存在!

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

import pymongo

# 连接数据库服务器,获取客户端对象
myclient = pymongo.MongoClient('mongodb://localhost:27017/')

mydb = myclient['newDB']
mycollection = mydb['newCollection']

上面两句并不能创建newDB和newCollection,因为后面没有内容插入。

参考网址:http://www.runoob.com/python3/python-mongodb-insert-document.html
http://www.runoob.com/python3/python-mongodb.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值