美文网首页redismysqlpython
python数据库操作MySQL-MongoDB-Redis之二

python数据库操作MySQL-MongoDB-Redis之二

作者: Dylan_2df0 | 来源:发表于2018-04-14 23:37 被阅读0次

<center>python数据库操作MySQL-MongoDB-Redis之二 MongoDB</center>

一 MongoDB 在win10下的安装

MongoDB官网

  1. 从官网下载完安装包后,开始安装:(我这以最新的mongodb-win32-x86_64-2008plus-ssl-3.6.3-signed.msi版本举例)
    安装过程: custom是自定义安装选项,建议安装在非系统盘(C盘)上


    1.png

关键点来了,就在下一步操作:


2.png

如果这不取消安装,会发现有的电脑死活安装不上,原因就在这compas问题上

  1. 再安装可视化界面(compass)(https://www.mongodb.com/download-center?jmp=docs&_ga=2.208589714.169613539.1518053388-361642939.1518053388#compass
    这样可以防止出现MongoDB安装不成功
  2. 现在配置启动MongoDB的服务以及将它设置为windows服务
    • 使用快捷键快速呼出本地服务项: win+R 弹出运行框 3.png
    • 在出现的运行窗口中输入services.msc 然后按确定按钮,或者直接回城即可调出本地服务项 5.png
      6.png
    • 找到mongodb服务,嘿嘿这提前说了,这就是我们下一步需要配置的mongodb服务 7.png
    • 现在开始配置MongoDB服务:在cmd命令下跳转到D:\MongoDB\Server\3.6\bin目录下

      • 先创建MongoDB的config配置文件 用记事本打开,输入以下内容

      • datapath=D:\MongoDB\data

      • logpath=D:\MongoDB\log 11.png
      • 可设置开机自启动,或者手动启动关闭,

    • 开启MongoDB服务,以管理员身份启动cmd命令窗口。切换到MongoDB下的bin目录下输入net start MongoDB 提示xxx服务正在启动 xxx服务已经启动成功,就可以输入mongo.exe运行客户端了。

    • 这里有个小点:想要直接输入mongo.exe就能运行MongoDB,前提要将它添加到系统的环境变量里面去,详见以下步骤

    • 找到此电脑标识 22.png
    • 右键选择属性 33.png
    • 选择高级系统设置 44.png
    • 详细步骤按序号进行(这种操作,使用任何软件都是异曲同工的事) hah.png

二 MongoDB在ubuntu:1604下的安装

  1. 安装方式一
  • 从官网下载linux/mongodb-linux-x86_64-ubuntu1604-3.6.3.tgz
  • 解压 tar -zxvf mongodb-linux-x86_64-ubuntu1604-3.6.3.tgz
  • 移动到/usr/local目录下
    sudo mv mongodb-linux-x86_64-ubuntu1604-3.6.3 /usr/local/mongodb
  • 将可执行文件添加到PATH路径中
    export PATH=/usr/local/mongodb/bin:$PATH
  1. 安装方式二
  • 直接简单粗暴,不需要下载源文件,可以直接用apt-get命令进行安装.打开终端,输入以下命令: sudo apt-get install mongodb
  • 安装完成后,在终端输入以下命令查看MongoDB版本:
    mongo -version
  • 启动与关闭mongodb命令如下:
    service mongodb start #启动mongodb服务
    service mongodb stop #终止mongodb服务
  • 默认设置MongoDB是随ubuntu系统启动自启动的,输入命令查看是否启动成功 pgrep mongo - I
  • 卸载mongodb
    sudo apt-get --purge remove mongodb mongodb-clients mongodb-server

Mac端下载与安装 与linux大致相同就不再多写

MongoDB数据库的常用操作命令

show dbs:显示数据库列表
show collections:显示当前数据库中的集合(类似关系数据库中的表table)
show users:显示所有用户
use yourDB:切换当前数据库至yourDB
db.help() :显示数据库操作命令
db.yourCollection.help() :显示集合操作命令,yourCollection是集合名

数据库的CRUD操作

  1. 将单个文档或多个文档插入并保存文档
    db.collection_name.insert({'bar':'baz'}) #这一操作会给文档增加一个"_id"键(原来没有的话),然后保存到MongoDB中
  • 单个插入
    db.collection_name.insertone({'bar':'baz'})
  • 批量插入
    db.collection_name.insermany() #可以将多个文档插入到一个集合中
  1. 查询文件
    db.collection_name.find(query, projection)
    query :可选,使用查询操作符指定查询条件
    projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
    若不指定 projection,则默认返回所有键,指定 projection 格式如下,有两种模式
    db.collection.find(query, {title: 1, by: 1}) // inclusion模式 指定返回的键,不返回其他键
    db.collection.find(query, {title: 0, by: 0}) // exclusion模式 指定不返回的键,返回其他键

想要较可读性推荐使用pretty()方法
db.collection.find().pretty()
4.更新数据
db.collection_name.update(criteria,objNew,upset,multi)

query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。
  1. 删除数据
    db.collection_name.remove() 现在官方更推荐使用delete() 和detelemany()方法
    删除集合下全部文档
    db.inventory.deleteMany({}) #推荐使用
    删除status等于A的全部文档
    db.inventory.deleteMany({ status : "A" }) #推荐使用
    删除status等于D的一个文档
    db.inventory.deleteOne( { status: "D" } ) #推荐使用

注意

  • 删除数据库的时候,切记要先切换到该数据库才能删除
    use db_name
    db.dropDatabase()
  • MongoDB偏向于易用性,默认是没有开启用户权限的.
  • 每次执行完程序,都可以返回shell模式查看结果
    输入 db.student.find()
  • 3.4版新增功能
    下面的命令插入123.40作为 NumberDecimal具有和不具有周围的值引号:
    db.json.insert({ decimalQuoted : NumberDecimal("123.40") })

python与MongoDB的交互

  1. 创建数据库
    import pymongo
    client = pymongo.MongoClient('localhost', 27017) 或
    client = MongoClient('mongodb://localhost:27017/')
  2. 连接数据库
    db = client.db_name 或 db = client"db_name"']
  3. 连接集合
    collection = db.collection_name 或 collection = db['collection_name']
  4. 查看数据看下所有集合名称
    db.collection_names()
  5. 插入数据
    collection.insert()
  6. 查看集合数据的总数
    collection.find().count()
  7. 查询结果排序
collection.find().sort("key1") # 默认为升序  
collection.find().sort("key1", pymongo.ASCENDING) # 升序  
collection.find().sort("key1", pymongo.DESCENDING) # 降序  
collection.find().sort([("key1", pymongo.ASCENDING), ("key2", pymongo.DESCENDING)])   #多列排序

感谢您的阅读,以上是本人遇到过或学习过程记录的笔记,水平有限,仅供参考,如果发现错误请及时联系作者,谢谢!

欢迎进我的个人博客Danniel'S,不定时更新,祝
共同进步!

相关文章

网友评论

    本文标题:python数据库操作MySQL-MongoDB-Redis之二

    本文链接:https://www.haomeiwen.com/subject/tqhckftx.html