热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MongoDB数据库安装与使用

导引安装之前写的一片mongodb使用小记过于简单,当时自己觉得没有必要详细写作,因为很多自己看文档就可以轻松搞定了,但是到自己要重新使用的时候,发现有些还是很容易忘记的。看文档固然可以理解,但是花费时间比较长,还有一点,文档都是面向大众话的,
导引
安装
之前写的一片mongodb使用小记过于简单,当时自己觉得没有必要详细写作,因为很多自己看文档就可以轻松搞定了, 但是到自己要重新使用的时候,发现有些还是很容易忘记的。看文档固然可以理解,但是花费时间比较长, 还有一点,文档都是面向大众话的,语言讲的覆盖比较广,但是却不细,现在重新记载一下使用过程, 以便以后快速参考。
去mongodb的官方网站下载和自己的机器相适应的.tar.gz压缩包。
使用一下命令解压缩:tar zxf mongodb-linux-xxx...
创建一个数据库存储的目录,mongodb默认会使用/data/db目录,因此,我们需要创建该目录, 同时要给目录加上一定的权限,可以使用以下命令:根据自己的情况,使用root权限操作。
mkdir -p /data/db
chown -R $USER:$USER /data/db
切换到自己刚才解压出来的mongodb目录,会发现有一个bin目录,进去之后,会发现里面全部是可执行文件, 在该目录下执行 ./mongod

mongodb数据库就可以以默认的方式启动了。

配置启动和停止
上面我们已经以默认的方式让mongodb启动了,但是在实际中,对于启动有多种配置方式。 使用下面命令可以查看都可以配置那些配置方式:   ./mongod --help
现在简单介绍一下一些常用的配置参数
--dbpath [数据目录地址]
用于指定数据存储目录,默认情况下,使用\data/db.在mongodb中, 每个mongod进程只能用一个单独的数据目录,注意这里指的是每个mongodb进程示例,并不是指数据库。 因此每个数据目录下面都有一个mongod.lock文件。当有多个mongod进程使用同一个数据目录的时候, 就会报错。
--port [端口号]
指定mongod启动的时候监听的端口号,默认情况下是27017。
--fork
让mongod以守护进程启动
--config [配置文件]
在这里可以制定,mongod启动的时候的配置文件,配置文件主要就是命令行参数的一些集合,写法为键=值, 像fork这些参数,使用true或者false。下面是一个配置文件示例
    # my mongod config
    port = 20000
    fork = true
    logpath = mongodb.log
--logpath [log文件]
指定输出的log文件
在mongod启动后都会有一个轻量的http端口开放,该端口号为mongod启动端口的值加上1000。 因此你可以在浏览器中输入localhost:28017(默认端口)来访问web页面。里面会有一些关于mongodb的运行信息。 但是有的时候为了安全原因,你可以关闭该端口,只要你在启动的时候加入--nohttpinter-face。另外,还可以 使用参数--bindip localhost,指定本机访问。还有一个在实际中要用的参数,--auth,加上这个参数之后启动 mongodb。在客户端连接mongodb服务器之后,当执行一些操作的时候,就需要认证。这就要和用户名权限相关联了。 同时也有一个root账户。

有两种普遍的方法可以停止mongodb数据库运行:
1,当mongodb是在终端运行的时候,可以直接按下Ctri+C,来终止mongodb进程。
2,当mongodb以守护进程的方式运行的时候,使用以下命令: kill -2 [mongodb进程号]其中mongodb进程号,可以使用ps -ef | grep mongod来查看。
使用 启动mongodb服务进程之后,mongodb自带有一个客户端程序,也是在bin目录下。运行./mongo就可以启动客户端 界面。这是一个典型的shell界面,可以在这里面进行对数据库的操作。不过在这个shell有一个比较特别的地方, 就是可以使用javascrip。它会自动解析javascrip语言。下面记录一下使用python的接口操作mongodb的过程。
首先,你会发现你至少可以搜到这样的三个python扩展库:pymongo,mongoengine,django-mongodb。 这些都是python操作mongodb的接口。它们之间的关系大自是这样字的。pymongo相当于是一个比较low level 的driver。仅仅是可以用python语言与数据库交互。因此相对来说是比较底层的驱动而已。而其它两种则是 object relation mapping,也就是ORM。经过对象抽象化的,相对而言要高层一些。比如我们在用django 这些web框架编写应用的时候,就会选择使用这些ORM。下面记录pymongo这个扩展包操作数据库的方法。
安装python很简单,就像安装其他python的扩展库一般,使用easy_install或者pip都一样。安装完之后,
进入python命令行。 建立连接:建立连接的时候,只是和mongodb进程连接
from pymongo import Connection
connection = Connection()
#another way to connection
connection = Connection('localhost',27017)
选择连接数据库:如果该数据库不存在,则会自动创建
db = connection.blog
#如果有安全验证的话,要执行以下语句进行认证
db.authenticate(user,password)
选择一个集合:在mongodb中是以库,集合,文档这样的结构组织的
blogs = db.blogs
尝试在mongodb中插入一个文档:
post={"author":"jom","text":"this is my first blog","tag":["mongodb","python"]}
blogs.insert(post)
查询文档:
#find one document
blogs.find_one()
#寻找全部符合一定要求的文档
blogs.find({"author":"jom"})
#list all documents
blogs.find()


推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 一:跨域问题1、同源策略(浏览器的安全策略)    只允许当前页面朝当前域下发请求,如果向其他域发请求,请求可以正常发送,数据也可以拿回,但是被浏览器拦截了  2、c ... [详细]
  • 学习一门编程语言,除了语法,最重要的是学习解决问题。很多时候单凭自己的能力确实无法做到完美解决,所以无论是搜索引擎、社区、文档还是博客&# ... [详细]
  • centos php部署到nginx 404_NodeJS项目部署到阿里云ECS服务器全程详解
    本文转载自:http:www.kovli.com20170919ecs-deploy作者:Kovli本文详细介绍如何部署NodeJS项目到阿里云ECS上, ... [详细]
  • 都说Python处理速度慢,为何月活7亿的 Instagram依然在使用Python?
    点击“Python编程与实战”,选择“置顶公众号”第一时间获取Python技术干货!来自|简书作者|我爱学python链接|https:www.jian ... [详细]
  • Abp+MongoDb改造默认的审计日志存储位置
    一、背景在实际项目的开发当中,使用AbpZero自带的审计日志功能写入效率比较低。其次审计日志数据量中后期十分庞大,不适合与业务数据存放在一起。所以我们可以重新实现A ... [详细]
  • 今天我们学习,数据库mongodb的使用,最下面有mongodb的下载链接。pipinstallpymongo首先安装pymongo,然后在需要用到的地方importpymongo ... [详细]
  • 十六.增加一个项目协作留言板功能(二)----- 建立一个任务管理的列表页面
    我们设计一个页面来展示正在处理的任务,该表格可以参照之前基础信息的增删改查。用户通过这个页面对任务进行相应操作。1.在views. ... [详细]
author-avatar
RebeccaLd
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有