MongoDB的最快上手教程

本教程浅入深出,有详细的参考资料来提高,有简单的入门资料能你快速掌握并使用。
欢迎联系转载,以及补充。

官网介绍:MongoDB是为现代应用程序开发人员和云时代构建的通用、基于文档的分布式数据库。

选取这个数据库的理由:

  1. python接口使用方便(丰富的 JSON 文档,支持嵌套对象,最自然、最高效的数据处理方式)

  2. 数据库搭建方便

  3. 可视化mongodb compass官方工具

  4. 因为我没有用过它分布式的特性,因此没办法从分布式的特定(可靠性)来说明

  5. 拥有图表工具(MongoDB Charts)。据说可以用来创建数据的可视化表示。但没使用过,后续会考虑学习一下。

示例图表仪表板

概念

graph LR Database --> Collection --> Documents

说明:把一条数据(json)看作是一个文档,Collection就是表的概念

常规语法

使用的版本:MongoDB 4.4.6 Community

连接数据库

  1. 创建客户端
$ ./mongo
  1. 登录数据库,默认端口27017
> mongodb://admin:123456@localhost/

创建(当数据库不存在)或者切换数据库

>use test

查询文档

>db.collection.find({'uid':1234})

同理,

>db.collection.insert()
>db.collection.insertOne()

参考:菜鸟教程

python接口

例子

from pymongo import MongoClient


if __name__ == "__main__":
	DATABASE = MongoClient('mongodb://localhost:27017/')	# 客户端连接mongodb服务器
	mydb = DATABASE['bilibili-data']	# 切换使用或者创建数据库实例
    col = mydb['users']	# 切换使用或者创建表
    
    # 插入
    msg = {'code': 0, 'msg': 'success'}
    msgs = [{'code': 0, 'msg': 'success'}, {'code': 1, 'msg': 'error'}]
    col.insert_one(msg)
    col.insert_many(msgs)
    
    # 查询
    res = col.find_one({'code': 1})
    res = col.find({'code': 1})
    
    # 删除
    col.delete_one({'code': 1})

详情教程:W3Schools

其他参考:PyMongo 3.11.4 documentation

安装及注意事项

  1. 安装官方教程,推荐安装方式:Install MongoDB Community on Ubuntu using .tgz Tarball,手动下载安装压缩包

  2. 解压之后,可以进入到bin目录,启动数据库服务命令如下:

    $ mongod --dbpath /datapath --logpath /logpath/mongod.log --bind_ip 127.0.0.1 --fork
    

    参数说明:--dbpath 数据存储位置 --logpath 日志存储位置 --bind_ip 127.0.0.1 表示只能本地连接,更多参数说明参考官网。

  3. PyMongo接口使用的fork安全问题?[Is PyMongo fork-safe?]

    答:PyMongo is not fork-safe. 不得将 MongoClient 的实例从父进程复制到子进程。相反,父进程和每个子进程必须创建自己的 MongoClient 实例。否则,容易发生死锁。

posted @ 2021-06-02 19:55  小肚腩的世界  阅读(173)  评论(0编辑  收藏  举报