MongoDB在python中的使用

本文介绍了MongoDB在Python中的使用,包括安装、配置、PyCharm插件的安装,以及Python如何链接MongoDB数据库。详细讲解了MongoDB的基本操作,如插入数据(ObjectID、文档)、查询数据、统计、排序、分页、更新和删除等。
摘要由CSDN通过智能技术生成

MongoDB在python中的使用

安装

组件 文件名
Server mongod.exe
Router mongos.exe
Client mongo.exe
MonitoringTools mongostat.exe,mongotop.exe
importExportTools mongodump.exe,mongorestore.exe,mongoexport.exe,mongoimport.exe
MiscellaneousTools bsondump.exe,mongofiles.exe,mongooplog.exe,mongoperf.exe
  • 运行
$ pwd
/d/Application/mogodb/package/mongodb4.0/bin
gdy@gdy MINGW64 /d/Application/mogodb/package/mongodb4.0/bin
$ ./mongod.exe
2019-08-13T22:01:34.963+0800 I STORAGE  [main] Max cache overflow file size custom option: 0
2019-08-13T22:01:35.408+0800 I CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2019-08-13T22:01:35.412+0800 I CONTROL  [initandlisten] MongoDB starting : pid=20852 port=27017 dbpath=D:\data\db\ 64-bit host=gdy
2019-08-13T22:01:35.413+0800 I CONTROL  [initandlisten] targetMinOS: Windows 7/Windows Server 2008 R2
2019-08-13T22:01:35.413+0800 I CONTROL  [initandlisten] db version v4.0.12
2019-08-13T22:01:35.413+0800 I CONTROL  [initandlisten] git version: 5776e3cbf9e7afe86e6b29e22520ffb6766e95d4
2019-08-13T22:01:35.413+0800 I CONTROL  [initandlisten] allocator: tcmalloc
2019-08-13T22:01:35.413+0800 I CONTROL  [initandlisten] modules: none
2019-08-13T22:01:35.413+0800 I CONTROL  [initandlisten] build environment:
2019-08-13T22:01:35.413+0800 I CONTROL  [initandlisten]     distmod: 2008plus-ssl
2019-08-13T22:01:35.413+0800 I CONTROL  [initandlisten]     distarch: x86_64
2019-08-13T22:01:35.413+0800 I CONTROL  [initandlisten]     target_arch: x86_64
2019-08-13T22:01:35.413+0800 I CONTROL  [initandlisten] options: {}
2019-08-13T22:01:35.434+0800 I STORAGE  [initandlisten] exception in initAndListen: NonExistentPath: Data directory D:\data\db\ not found., terminating
2019-08-13T22:01:35.434+0800 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
2019-08-13T22:01:35.434+0800 I CONTROL  [initandlisten] now exiting
2019-08-13T22:01:35.434+0800 I CONTROL  [initandlisten] shutting down with code:100

gdy@gdy MINGW64 /d/Application/mogodb/package/mongodb4.0/bin
$
  • 启动服务出错,原因在于找不到数据目录。windows下创建该目录D:\data\db\
  • 选项说明
    1. --bind_ip ip逗号分隔ip地址。默认localhost
    2. --bing_ip_all绑定所有本地ip地址
    3. --port port端口,默认27017
    4. --dbpath path数据路径,缺省为\data\db\。windows下缺省就是当前盘符的根目录
    5. --logpath path指定日志文件,替代stdout,说明默认是控制台打印日志
    6. -f file指定配置文件,yaml格式
    7. 注册wiendows服务
      • –install 注册windwos服务
      • –serviceName name 服务名称
      • –serviceDisplayName name 服务显示名

配置文件

systemLog:
   destination: file
   path: "D:/Application/mogodb/package/mongodb4.0/mongod.log"
   logAppend: true
storage:
   dbPath: "D:/Application/mogodb/package/mongodb4.0/db"
net:
   bindIp: 127.0.0.1
   port: 27017
  1. 在对应目录建立D:/Application/mogodb/package/mongodb4.0/db文件夹
  • 选项

    1. systemLog
      • destination,缺省是输出日志到std,file表示输出到文件
      • path,日志路径
      • logAppend,true表示在已存在的日志文件追加。默认false,每次启动服务,重新创建新的日志。
    2. storage
      • dbPath,必须指定,mongodb的数据目录
    3. net
      • bindlp,缺省绑定到127.0.0.1
      • port,端口,缺省为27017,客户端连接用
  • windows下注册为服务的命令如下,使用了配置文件:

    1. mongod.exe -f "D:/Application/mogodb/package/mongodb4.0/mongod.yml" --serviceName mongod --serviceDisplayName mongo --install
  • 去掉配置文件中的配置日志信息部分。这样日志将会显示在控制台

storage:
   dbPath: "D:/Application/mogodb/package/mongodb4.0/db"
net:
   bindIp: 127.0.0.1
   port: 27017
  • 控制台执行命令为:
$ pwd
/d/Application/mogodb/package/mongodb4.0/bin

gdy@gdy MINGW64 /d/Application/mogodb/package/mongodb4.0/bin
$ ./mongod.exe -f ../mongodb.yml

客户端

  • 客户端连接
$ bin/mongo.exe
MongoDB shell version v4.0.12
help 打开帮助
show dbs    查看当前库
use blog    有就切换过去,没有就创建后切换过去。刚创建的并不在数据库列表中,需要写入数据后才能看到
db          查看当前数据库
db.users.insert({user:"tom",age:20}) db指代当前数据库;users集合名

Pychar插件

  • 在settings/plugins中输入mongo,安装Mongo Plugin,完成后重启Pycharm。
  • 菜单项view/Tool windows/Mongo Explorer

Python链接

  • Mongodb官方推荐使用pymongo。参考https://docs.mongodb.com/ecosystem/drivers/pymongo/
  • 本次Mongodb使用的是3.6,需要pymongo 3.6以上。缺省安装pymongo 3.8,目前兼容Python 3.4+。
  • mongodb的链接字符串mongodb://gdy:gdy@127.0.0.1:27017/test
from pymongo import MongoClient

# client = MongoClient(host="127.0.0.1",port=27017) #客户端连接
client = MongoClient("mongodb://127.0.0.1:27017")
print(client)

# db = client.blog
db = client["blog"] #指定数据库
print(db)

# users = db["users"]
users = db.users #集合
print(users)

Mongodb基本使用

基本概念

  • MongoDB中可以创建使用多个库,但有一些数据库名是保留的,可以直接访问这些特殊作用的数据库。
    1. admin:从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
    2. local:这个数据永远不会被赋值,可以用来存储限于本地单台服务器的任意集合
    3. config:当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
MongoDB RDBMS
Database Database
Table Collection
Row Document
Column Field
Join Embedded Document嵌入文档或Reference引用
Primary Key 主键(MongoDB提供了Key为_id)

插入数据

  • 每条数据插入后都有一个唯一key,属性_id唯一标识一个文档。没有没有显示指明该属性,会自动生成一个Objectld类型的_id属性。
  • pymongo.collection.Collection类
    1. db.collection.insert_one(dict)->InsertOneResult #单行插入
      • dict是一个字典
      • InsertOneResult:f返回结果ObjectId对象,即_id的值
    2. db.collection.insert_many([dict,…])->[InsertOneResult,…] #多行插入
      • 第一个参数是个列表,列表中记录需要插入的文档类型即dict
      • 返回结果,被插入的对象所获得的id
from pymongo import MongoClient
from pymongo.results import InsertOneResult
from pymongo.collection import Collection

# client = MongoClient(host="127.0.0.1",port=27017) #客户端连接
client = MongoClient("mongodb://127.0.0.1:27017")
db = client["blog"] #指定数据库
users:Collection = db.users #集合

user1 = {
   "id":1,"name":"ben","age":
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值