mongoDB&& PyMongo&& 运算符

本文详细介绍了MongoDB的基础知识,包括其相对于RDBMS的优势、安装步骤、用户管理、数据库和集合操作。同时,深入探讨了PyMongo的使用,包括连接数据库、管理数据以及各种运算符的运用,是MongoDB和Python开发者的重要参考资料。
摘要由CSDN通过智能技术生成

Mongodb

1.基本介绍

官方文档:https://docs.mongodb.com/
操作文档:https://www.qikegu.com/docs/3283

MongoDB 是由C++语言编写并基于分布式文件存储的开源数据库。

MongoDB 是一款介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的NOSQL数据库。它面向文档存储,而且安装和操作起来都比较简单和容易,而且它支持各种流行编程语言进行操作,如Python,Node.js,Java,C++,PHP,C#,Ruby等。

目前在大数据、内容管理、持续交付、移动应用、社交应用、用户数据管理、数据中心等领域皆有广泛被使用。

1.1 MongoDB相对于RDBMS的优势
  • 无固定结构 。
  • 数据结构由键值(key=>value)对组成。MongoDB 的文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组,单个对象的结构是清晰的。
  • 没有复杂的表连接。不需要维护表与表之间的内在关联关系。
  • 查询功能强大。MongoDB的查询功能几乎与SQL一样强大,使用基于文档的查询语言,可以对文档进行动态查询。
  • 易于调优和扩展。具备高性能、高可用性及可伸缩性等特性
  • 应用程序对象与数据库对象天然对应。
  • 可以基于内存存储或者硬盘文件存储,提供丰富的查询操作和索引支持,也有事务操作,可以更快地更稳定的访问数据。
1.2 术语对比
sql Mongodb 描述
库(database) 库(database)
表(Talbe) 集合(Collection)
行/记录(Row) 文档(Document) Document就是json结构的一条数据记录
列/字段(Col) 字段/键/域(Field)
主键(Primary Key) 对象ID(ObjectId) _id: ObjectId(“10c191e8608f19729507deea”
索引(Index) 索引(Index) 也有普通索引, 唯一索引这么区分的
1.3 基本安装

目前最新版本为4.4版本,ubuntu18.04中默认安装的是3.6版本【可以继续基于这个版本进行学习,这块内容跳过即可】。

安装之前建议更新下Linux源.

# 1、备份源文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak  
# 2、添加源到sources.list中
sudo gedit /etc/apt/sources.list

# 在打开的文本中,添加阿里源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

# 3、更新源
sudo apt-get update

如果要在ubuntu18.04中安装最新4.4版本mongodb,则需要完成以下命令步骤:

# 安装依赖包
sudo apt-get install libcurl4 openssl
# 关闭和卸载原有的mongodb
service mongodb stop
sudo apt-get remove mongodb
sudo apt-get purge mongodb-org *
sudo apt-get purge mongodb*

# 导入包管理系统使用的公钥
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
# 如果命令执行结果没有显示OK,则执行此命令在把上一句重新执行:sudo apt-get install gnupg

# 注册mongodb源
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

# 更新源
sudo apt-get update

# 安装mongodb
sudo apt-get install -y mongodb-org=4.4.2 mongodb-org-server=4.4.2 mongodb-org-shell=4.4.2 mongodb-org-mongos=4.4.2 mongodb-org-tools=4.4.2
# 安装过程中如果提示: mongodb-org-tools : 依赖: mongodb-database-tools 但是它将不会被安装
# 终端下运行以下命令,解决:
# sudo apt-get autoremove mongodb-org-mongos mongodb-org-tools mongodb-org
# sudo apt-get install -y mongodb-org=4.4.2

# 创建数据存储目录
sudo mkdir -p /data/db

# 修改配置,开放27017端口
sudo vim /etc/mongodb.conf
# 把12行附近的port=27017左边的#号去掉

启动和关闭MongoDB

# 重新加载配置,并启动mongodb
sudo systemctl daemon-reload
sudo systemctl start mongod

# 查看运行状态
sudo systemctl status mongod
# 如果mongodb状态为stop,则运行 sudo systemctl enable mongod

# 停止mongodb
sudo systemctl stop mongod

# 重启mongodb
sudo systemctl restart mongod

进入交互终端

MongoDB安装完成后,默认是没有权限验证的,默认是不需要输入用户名密码即可登录的
也可以启动权限认证,但是必须注意:
mongodb默认是没有管理员账号的,所以要先切换到admin数据库添加管理员账号,再开启权限认证,否则就玩大了。

# 进入交互终端
mongo

效果:

MongoDB shell version v4.4.2
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("2c920d56-ddbb-4649-9191-a3bd4506a2d2") }
MongoDB server version: 4.4.2
---
The server generated these startup warnings when booting: 
		# 警告:强烈建议使用XFS文件系统,并使用WiredIger存储引擎。
		# 解释:因为当前ubuntu使用的是ext4文件系统,mongodb官方建议使用XFS文件系统功能更能发挥mongodb的性能,忽略不管
        2020-11-23T16:23:34.416+08:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
        # 警告:当前mongodb没有为数据库启用访问控制。对数据和配置的读写访问是不受限制的。
        # 解释:后面会创建数据库用户采用密码登陆的。暂时不用管
        2020-11-23T16:23:35.046+08:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
---
---
        Enable MongoDB's free cloud-based monitoring service, which will then receive and display
        metrics about your deployment (disk utilization, CPU, operation statistics, etc).

        The monitoring data will be available on a MongoDB website with a unique URL accessible to you
        and anyone you share the URL with. MongoDB may use this information to make product
        improvements and to suggest MongoDB products and deployment options to you.

        To enable free monitoring, run the following command: db.enableFreeMonitoring()
        To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---

mongod是处理MongoDB系统的主要进程。主要负责处理数据请求,管理数据存储,和执行后台管理操作。
当我们运行mongod命令意味着正在启动MongoDB进程,并且在后台运行。
mongo是一个命令行工具,用于连接一个特定的mongod实例。
当我们没有带参数运行mongo命令它将使用默认的端口号27017和localhost进行连接

退出交互终端

exit
# quit()

为MongoDB创建用户
查看版本

mongo --version
# 或者终端内部使用 version()

2.基本操作

2.1 通用操作
2.1.1 查看帮助文档
  • help
db.help()                    help on db methods
	db.mycoll.help()             help on collection methods
	sh.help()                    sharding helpers
	rs.help()                    replica set helpers
	help admin                   administrative help
	help connect                 connecting to a db help
	help keys                    key shortcuts
	help misc                    misc things to know
	he
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值