zoukankan      html  css  js  c++  java
  • mongodb学习之:数据库

    首先来介绍下Mongodb的基本概念:

    左边一列是关系数据库的术语,右边这一列是NOSQL也就是mongodb的术语

    database:       database         数据库         

    table:          collection        数据库表/集合

    row:           document        数据记录行/文档

    coloum:        field            数据字段/域

    index:          index           索引

    table joins:                      表连接,Mongodb不支持

    primary key:     primay key       主键,Mongodb自动将id设为主键

    首先来看数据库的概念,进入mongo后用show dbs可以查看当前所有的数据列表:此时刚安装好只有admin和local两个数据库

    > show dbs

    admin  0.000GB

    local  0.000GB

    use命令选择需要使用的数据库。

    > use admin

    switched to db admin

    如果我们想创建自己的一个数据库也可以使用use命令。可以看到新建的数据库再用show dbs的时候是无法观察到的。这需要我们插入数据

    > use maple

    switched to db maple

    > show dbs

    admin  0.000GB

    local  0.000GB

    > db

    maple

    在插入数据前需要介绍文档和集合的概念:

    文档是一组键值(key-value)对(即BSON)。MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是 MongoDB 非常突出的特点。一个文档的例子:{‘name’:’zhf’}。这和字典的格式是一样的。

    文档格式需要注意的是:

    1. 文档中的键/值对是有序的。
    2. 文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)
    3. MongoDB区分类型和大小写。
    4. MongoDB的文档不能有重复的键。
    5. 文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。 

    文档键命名规范:

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

    集合:

    集合就是 MongoDB 文档组,前面我们介绍术语的时候集合对应着关系数据库的table也就是表格。而文档对应关系数据库的行。因此集合可以看做是文档的集合。集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。比如,我们可以将以下不同数据结构的文档插入到集合中:

    {‘name’:’zhf’}

    {‘name’:’zhf’,’city’:’chengdu’}

    {‘name’:’zhf’,’city’:’chengdu’,’age’:30}

    从这可以看出,相比与关系数据库中的数据,mongodb的数据结构更加随意。不要求每行的数据类型都一样。

    集合的命令规范

    • 集合名不能是空字符串""
    • 集合名不能含有字符(空字符),这个字符表示集合名的结尾。
    • 集合名不能以"system."开头,这是为系统集合保留的前缀。
    • 用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。除非你要访问这种系统创建的集合,否则千万不要在名字里出现$

    介绍完文档和集合,我们就来向数据库中插入一组数据。插入后通过show dbs就可以找到我们的数据库了

    > db.maple.insert({"name":"zhf"})

    WriteResult({ "nInserted" : 1 })

    > show dbs

    admin  0.000GB

    local  0.000GB

    maple  0.000GB

    前面db.maple.insert()命令其实是在maple数据库中的maple集合插入了一个文档{“name”:”zhf”}

    通过db.集合名.find()的方式就可以查询到集合的内容

    > db.maple.find()

    { "_id" : ObjectId("5a3133be956c5a2e19343140"), "name" : "zhf" }

    使用show collections的方式就可以列出所有存在的集合。

    > show collections

    maple

    如果要删除集合,使用db.集合名.drop()的方式

    > db.maple.drop()

    true

    > show collections

    如果要删除数据库。采用db.dropDatabase()命令

    > db.dropDatabase()

    { "dropped" : "maple", "ok" : 1 }

    > show dbs

    admin  0.000GB

    local  0.000GB

  • 相关阅读:
    实验一 开发环境的熟悉(小组)
    第六章家庭作业
    Linux常用命令-1
    Linux简介
    Python for写死循环?
    python将某个列表按元素值分成多个子列表
    xshell 5连接NAT模式的虚拟机
    python中remove的一些坑
    Sender IP字段为"0.0.0.0"的ARP请求报文
    免费ARP
  • 原文地址:https://www.cnblogs.com/zhanghongfeng/p/8035207.html
Copyright © 2011-2022 走看看