zoukankan      html  css  js  c++  java
  • 初识MongoDB

    1. 初识

    接触MongoDB,是由于最近在工作中用到了MongoDB做数据存储。之前也听说过这个NoSQL数据库,但是一直没有尝试去使用它做开发。这次趁着这个机会,想好好学习下这个NoSQL数据库。每次听到这个名字,总是想,为什么它的Logo不是一个芒果呢!

    2. 简介

    MongoDB是一款C++编写的开源的跨平台面向文档数据库,是NoSQL数据库的一种。MongoDB摒弃了传统数据库中基于表的数据结构,采用类似JSON格式的文档结构来存储数据(MongoDB中称这种格式为BSON)。MongoDB最初是由10gen(2013年更名为MongoDB Inc.)公司于2007年开发的,并于2009年开源。

    3. 术语

    在使用MongoDB前,我们有必要了解下MongoDB中的术语。就像我们使用关系型数据一样,我们得先了解下什么是表(Table),什么是数据库(Schema)。

    3.1 Document

    是MongoDB中的数据的基本单元,类似于我们熟悉的关系型数据库中"行"的概念。在MongoDB中,Document是一系列有序的键值对的集合。在编程语言中,像Map,Hashtable和Dictionary等数据结构可以和这种存储结构相匹配,比如对于JavaScript而言,它的对象就是以这种格式表示的。

    {"greeting" : "Hello, world!"}

    3.2 Collection

    在MongoDB中,一个Collection是由一组Document组成的。类似的,Document对应于关系数据中的"行"的概念,那么Collection就对应了数据库中"表"的概念。

    在Collection中存储的Document,必须包含一个"_id"字段,用于表示纪录的主键,如果Document中没有包含,则MongoDB会自动生成一个。

    MongoDB中的Collection具有动态模式的特定,意思就是在一个Collection中包含的Document,可以具有不同的结构。这个和关系型数据库不同,关系型数据中,表中的每一行的格式都是一致的。在MongoDB中,一个Collection可以包含不同格式的Document:

    {"greeting" : "Hello, world!"}
    {"foo" : 5}

    3.3 Database

    就像一系列的Document组成了一个Collection,在MongoDB中,一系列的Collection就组成了Database。一个Database具有自己的权限控制,每个Database存储在独立的数据文件中。

    4. 使用

    4.1 启动MongoDB服务

    通过MongoDB提供的"mongod"命令来启动MongoDB

    mongod --dbpath mongodb/data/

    "--dbpath"选项指定了MongoDB服务的数据存储目录。如果不指定任何参数,则默认的数据存储目录在"/data/db"。当执行命令以后,会输出当前系统的一些信息和MongoDB服务的一些信息,包括服务的端口号:27017 。

    4.2 使用mongo shell访问MongoDB服务

    mongo shell是一个和MongoDB服务进行交互的客户端, 同时也是一个JavaScript解释器。可以公共mongo shell对MongoDB中的数据进行操作。mongo shell是随MongoDB一起安装的,可以在目录"{MongoDB安装目录}/bin/"下找到"mongo"命令。

    启动mongo shell

    mongo

    如果没有指定任何参数,那么默认将会访问localhost:27017下MongoDB服务。当我们本地起了MongoDB服务以后,就可以直接连接到服务器了:

    默认的数据库是"test",我们可以通过变量名"db"查看当前激活的数据库:

    通过"use"命令,可以切换数据库

    如果完成工作后退出mongo shell,可以输入"exit"命令退出。

    通过"help"命令,可以获得mongo shell的帮助信息:

    4.3 通过mongo shell进行CRUD操作

    这里简单介绍下如何通过mongo shell进行简单的CRUD操作。

    假设我们当前在blog数据库中。

    4.3.1 insert操作

    我们给我们的blog数据库的的"post" Collection下添加一篇文章:

    4.3.2 query操作

    在上一步中,我们添加了一个Document到Collection "blog"中,现在我们需要查询这篇文章:

    4.3.3 update操作

    现在,我们需要对这篇blog的内容进行修改:

    4.3.4 delete操作

    最后,删除我们上面添加的post:

    5. 总结

    这里,我们只是对MongoDB做了一个简单的认识,至于它的CRUD的各种语法,以及mongo shell的使用,且听下回分解~

  • 相关阅读:
    JAVA-容器(5)-Map
    JAVA-容器(4)-Set
    数据脏读-非重复读-幻读
    JAVA-容器(3)-List
    JAVA-容器(2)-Collection
    JAVA-容器(1)
    Arrays排序
    JAVA-虚拟机(3)-调优
    zip解压缩
    rabbitMQ、activeMQ、zeroMQ、Kafka、Redis 比较
  • 原文地址:https://www.cnblogs.com/duke2016/p/5727417.html
Copyright © 2011-2022 走看看