本人只是软件开发的一个菜鸟,在学习MongoDB,总结了一点自己学习的知识,监督自己学习。

如果文章中有不足的地方,还请大神指点迷津,纠正改错,谢谢。

一.MongoDB简介

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

二.MongoDB特点

它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:

  1. 面向集合存储,易存储对象类型的数据。
  2. 模式自由。
  3. 支持动态查询。
  4. 支持完全索引,包含内部对象。
  5. 支持复制和故障恢复。
  6. 使用高效的二进制数据存储,包括大型对象(如视频等)。
  7. 自动处理碎片,以支持云计算层次的扩展性。
  8. 支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
  9. 文件存储格式为BSON(一种JSON的扩展)。
  10. 可通过网络访问。

三.MongoDB的安装以及启动

官方网站下载:https://www.mongodb.com/download-center
注意: 需要根据自身的系统来下载指定的版本

ubuntu安装过程(以ubuntu16.04-64为例) 

1.在超级用户模式中操作将下载 mongodb-linux-x86_64-ubuntu1604-3.2.8.tgz 文件移动到 /usr/local :

mv mongodb-linux-x86_64-ubuntu1604-3.2.8.tgz /usr/local

2.解压mongodb-linux-x86_64-ubuntu1604-3.2.8.tgz:

tar xf mongodb-linux-x86_64-ubuntu1604-3.2.8.tgz

3.将解压后的可执行文件路径添加到系统环境变量中:

  修改文件/etc/bash.bashrc文件,在最后添加如下内容:(vim /etc/bash.bashrc)

  PATH=$PATH:/usr/local/mongodb-linux-x86_64-ubuntu1604-3.2.8/bin/

  export PATH

4.重新启动环境变量:

source /etc/bash.bashrc

5.创建默认数据库路径:

mkdir -p /data/db

6.启动mongod服务(直接运行mogod即可)

7.运行MongoDB shell  连MongoDB服务器

mongo 连接本地默认数据库

mongo 192.168.1.2/test 连接其他主机的test数据库

mongo 192.168.1.2/test -u xxx -p yyyy 使用用户名和密码连接其他主机的数据库

四.文档

文档是MongoDB的核心概念。文档由一系列键及其关联的值有序组成。比如:
{"name":"lisi", "age": 10}

文档键的命名规则:

文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。

  1. 键不能含有 (空字符)。这个字符用来表示键的结尾。
  2. .和$有特别的意义,只有在特定环境下才能使用。
  3. 以下划线 _ 开头的键是保留的。

注意

    1. 文档中的键/值对是有序的。
    2. 文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。
    3. MongoDB区分类型和大小写。
    4. MongoDB的文档不能有重复的键。

五.MongoDB常见数据类型

字符串。存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的。
整型数值。用于存储数值。根据你所采用的服务器,可分为 32 位或 64 位。

布尔值。用于存储布尔值(真/假)。

双精度浮点值。用于存储浮点值。

Arrays 用于将数组或列表或多个值存储为一个键。

Timestamp 时间戳。记录文档修改或添加的具体时间。

Object 用于内嵌文档。

Null 用于创建空值。

Symbol 符号。该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。

Date 日期时间。用 UNIX 时间格式来存储当前日期或时间。创建 Date 对象,传入年月日信息。

Object ID 对象 ID。

二进制数据。

代码类型。

正则表达式类型。

六.MongoDB数据库的创建及删除

七.MongoDB集合的创建和删除

八.MongoDB文档操作

九.删除文档

十.查找文档

十一.MongoDB索引 

十二.MongoDB聚合

注意事项:(如何解决MongoDB在安装后产生的冲突?)

1.ps ajx| grep "mongod"

作用是删除后台运行的进程(避免多余的mongodb在后台运行,导致你不能正常的使用数据库)

2.sudo dpkg -P mongodb-server   mongdb-client

作用是卸载本地的mongodb,因为多余的mongodb会产生冲突,阻止你正常使用。

3.mongod

运用mongod查找程序安装的时候的冲突,如果出现上图所示样式,说明安装的mongodb产生了冲突

需要使用指令:sudo rm /tmp/mongodb-27017.sock  -rf  删除冲突文件,文件名在上图倒数第五行中

4.正常运行的界面应该是下图中所示,有光标在闪,证明开启mangodb数据库成功!

MongoDB的基础知识的更多相关文章

  1. 二、MongoDB的基础知识简介

    1.文档.集合和数据库 a).文档:因为MongoDB是面向文档的数据库,那么可想而知文档是它的基本单元,相当于关系型数据库中的行! Ⅰ.它是由键值对组成的一个有序集:注:键不能为空且是字符串类型的. ...

  2. MongoDB CRUD 基础知识

    建立一个良好的发展环境 环境win8 x64,下载并安装省略.经mongodb 的bin文件夹增加windows的path中,为以后使用方便. c盘新建存储目录:c:/data/db 执行服务:WIN ...

  3. 基于C#的MongoDB数据库开发应用(1)--MongoDB数据库的基础知识和使用

    在花了不少时间研究学习了MongoDB数据库的相关知识,以及利用C#对MongoDB数据库的封装.测试应用后,决定花一些时间来总结一下最近的研究心得,把这个数据库的应用单独作为一个系列来介绍,希望从各 ...

  4. MongoDB 基础知识

    一. 基础知识 1. MongoDB是一个文档型的数据库,文档就是一个键值对的有序集合. 例如这样:{"greeting":"hello world"} 2. ...

  5. MongoDB基础知识 02

    MongoDB基础知识 02 6 数据类型 6.1 null : 表示空值或者不存在的字段 {"x":null} 6.2 布尔型 : 布尔类型只有两个值true和false {&q ...

  6. MongoDB基础知识 01

    MongoDB基础知识  1. 文档  文档是MongoDB中的数据的基本单元,类似于关系型数据库管理系统的行. 文档是键值对的一个有序集.通常包含一个或者多个键值对. 例如: {”greeting& ...

  7. DataBase MongoDB基础知识记录

    MongoDB基础知识记录 一.概念: 讲mongdb就必须提一下nosql,因为mongdb是nosql的代表作: NoSQL(Not Only SQL ),意即“不仅仅是SQL” ,指的是非关系型 ...

  8. Mongodb 笔记01 MongoDB 简介、MongoDB基础知识、启动和停止MongoDB

    MongoDB 简介 1. 易于使用:没有固定的模式,根据需要添加和删除字段更加容易 2. 易于扩展:MongoDB的设计采用横向扩展.面向文档的数据模型使它能很容易的再多台服务器之间进行分割.自动处 ...

  9. MongoDB基础知识记录

    MongoDB基础知识记录 一.概念: 讲mongdb就必须提一下nosql,因为mongdb是nosql的代表作: NoSQL(Not Only SQL ),意即“不仅仅是SQL” ,指的是非关系型 ...

随机推荐

  1. Windows Server 2008配置服务器证书[转载]

    备忘 http://wangchunhai.blog.51cto.com/225186/139451

  2. Spark BlockManager的通信及内存占用分析(源码阅读九)

    之前阅读也有总结过Block的RPC服务是通过NettyBlockRpcServer提供打开,即下载Block文件的功能.然后在启动jbo的时候由Driver上的BlockManagerMaster对 ...

  3. NLP情感分析监督学习样本打标

    1). 情感打标 a). 全句 单句 标签 好吃是好吃 pos 真材实料 pos 不过感觉一人份的量就有点小贵 neg 点的是肥牛米线 neu b). 全文本 文本 标签 分量足,味道不错,味道也不错 ...

  4. 每天一个 Linux 命令(20):find命令之exec

    find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. exec解释: -exec  参数后面跟的是command ...

  5. tony_iptables_01_linux下IPTABLES配置详解(转)

    如果你的IPTABLES基础知识还不了解,建议先去看看. 开始配置 我们来配置一个filter表的防火墙. (1)查看本机关于IPTABLES的设置情况 [root@tp ~]# iptables - ...

  6. 那些年蹚过的坑(c++)

    1 main中的参数 尽量用英文双引号括起来,否则可能会出现字符串截断的情况(linux gcc 4.4 不加英文引号的话,遇到英文;会丢弃;后面的部分) 2 包含ipv6地址结构体(in6_addr ...

  7. Google Developing for Android 一 - 相关上下文介绍

    前几天在G+上看到Google Developers站点,有一个Android系列的文章,分享到个人微博,周末闲来没事就学写了下,把它们简单的翻译了下,没想到一发不可收拾,六篇文章全部都翻译完了,有些 ...

  8. Xilinx FPGA全局时钟和全局时钟资源的使用方法

    对FPGA的全局时钟了解不多,遂转载一篇文档: http://xilinx.eetop.cn/?action-viewnews-itemid-42 目前,大型设计一般推荐使用同步时序电路.同步时序电路 ...

  9. Window对象方法

    Window对象方法 scrollBy() 按照指定的像素值来滚动内容. scrollTo() 把内容滚动到指定的坐标. setInterval() 按照指定的周期(以毫秒计)来调用函数或计算表达式. ...

  10. Python体验(08)-图形界面之工具栏和状态栏

    # coding=utf-8 import wx # 导入必须的Python包 class MenuForm(wx.Frame): def OnQuit(self,event): self.Close ...