MongoDB与python交互!这才是正确玩转数据库的正确方式!

Posted sm123456

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB与python交互!这才是正确玩转数据库的正确方式!相关的知识,希望对你有一定的参考价值。

1.Pymongo

PyMongo是Mongodb的Python接口开发包,是使用python和Mongodb的推荐方式。

官方文档

2.安装

技术分享图片

技术分享图片

  • 通过ObjectId来查找

>>> post_id ObjectId(...)
>>> posts.find_one({"_id": post_id})
{u‘date‘: datetime.datetime(...), u‘text‘: u‘My first blog post!‘, u‘_id‘: ObjectId(‘...‘), u‘author‘: u‘Mike‘, u‘tags‘: [u‘mongodb‘, u‘python‘, u‘pymongo‘]}
  • 不要转化ObjectId的类型为String

>>> post_id_as_str = str(post_id)
>>> posts.find_one({"_id": post_id_as_str}) # No result >>>
  • 如果post_id是字符串

from bson.objectid import ObjectId 
# The web framework gets post_id from the URL and passes it as a string def get(post_id): 
 # Convert from string to ObjectId: 
 document = client.db.collection.find_one({‘_id‘: ObjectId(post_id)})

技术分享图片

技术分享图片

4.mongoDB其它操作

1.超级管理员

  • 为了更安全的访问mongodb,需要访问者提供用户名和密码,于是需要在mongodb中创建用户

    采用了角色-用户-数据库的安全管理方式

    常用系统角色如下:

技术分享图片

  • 启用安全认证

    修改配置文件

sudo vi /etc/mongod.conf
  • 启用身份验证

    注意:keys and values之间一定要加空格, 否则解析会报错

security:
 authorization: enabled
  • 重启服务

sudo service mongod stop
sudo service mongod start
  • 终端连接

mongo -u ‘admin‘ -p ‘123‘ --authenticationDatabase ‘admin‘
  • 普通用户管理

    使用超级管理员登录,然后进入用户管理操作

    查看当前数据库的用户

技术分享图片

2.主从双备

复制的优点

  • 复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性,并可以保证数据的安全性

  • 复制还允许从硬件故障和服务中断中恢复数据

技术分享图片

技术分享图片

  • step8:新开窗口,连接第二个mongo服务

mongo --host 192.168.10.111 --port 27019
  • step9:向主服务器中插入数据

use test1for(i=0;i<10;i++){db.t1.insert({_id:i})}
db.t1.find()

技术分享图片

3.备份

  • 语法

技术分享图片

5.Mongodb与python交互

  • 之前学习了爬虫,现在我们把爬取得到的数据存储于Mongodb中

技术分享图片

技术分享图片

  • 开启mongo,运行代码

技术分享图片

通过Robo 3T可视化工具我们可以看到抓取到了137条数据,并且已存储到mongodb中

6.完成命令行项目:学生信息管理(基于Python2.7)

  • 代码操作

技术分享图片

技术分享图片

技术分享图片

已成功!

欢迎大家关注我的博客:https://home.cnblogs.com/u/sm123456/

欢迎大家加入千人交流答疑群:125240963

以上是关于MongoDB与python交互!这才是正确玩转数据库的正确方式!的主要内容,如果未能解决你的问题,请参考以下文章

技术控 | 关于分布式事务的思考 这才是正确逻辑

卧槽!这才是最好的Python技术变现方案!

卧槽!这才是最好的Python技术变现方案!

驾校都是错的?这才是日常驾驶正确的换挡方式

拜托!这才是分布式系统CAP的正确打开方式!

Redis 集群别乱搭,这才是正确的姿势!