• mongodb简介


    mongodb简介

    转自: http://www.toutiao.com/i6398793915851342337/

    一、MongoDB文档,集合,数据库的概念:

    1.基本概念:

    1)Document文档是MongoDB中数据的基本单元,是MongoDB的核心概念,很类似关系数据库中的行Row

    2)Collection集合可以被看作没有模式的表Table

    3)Database/dbs MongoDB每个实例都可容纳多个独立数据库,每个数据库都有自己的集合和权限

    2.文档Document:

    1)多个键及其关联的值有序地放置在一起就是文档

    2)单键值文档:{“username”:”bbs11”}

    3)多键值文档:{“_id”:”76b606a9f9b770517ca4d98b”,”userName”:”bbs59”,”acctAttr”:null}

    4)文档中键/值对有序的

    5)文档中的值不仅可以是字符串,也可以是其他数据类型(或者嵌入其他文档,数据类型部分详细讲解)

    6)键是字符串,键可以使用任意UTF-8字符

    7)键不能含有(空字符),空字符表示键的结尾

    8)和$作为保留字符,通常不应出现在键中

    9)以下划线”_”开头的键通常情况下是保留的(_id)

    10)MongoDB不但区分数据类型,也区分大小写

    {“user”:”11”}与{“user”:11}不同,{“User”:”11”}与{“user”:11”},oracle默认是不区分大小写,也可以配置区分

    11)文档中不允许有重复的键:{“userName”:”bbs11”,”userName”:”david”}非法

    3.集合Collention:

    1)集合就是一组文档,与关系型数据库的表可类比

    2)集合是无模式的,MongoDB对模式不做强制要求,由开发者灵活把握

    命令规则:

    3)集合名不能是空串””;

    4)不能含有空字符;

    5)不能以”system.”开头,这是系统集合保留的前缀

    6)集合名不能含保留字符$;

    7)组织集合的一种惯例是以.分开,近命名空间划分子集合,例如

    > show collections

    system.users.system.indexes(admin)

    4.数据库dbs/database:

    1)多个集合组成数据库

    2)一个MongoDB实例可承载多个数据库,互相之间彼此独立

    3)开发通常将一个应用的所有数据存放到同一个数据库中

    4)磁盘中,MongoDB将不同数据库存放在不同文件中

    5)命名规则:

    1.数据库名是UTF-8字符串,最长64个字符

    2.不能是空字符串” ”;

    3.不能含’’号和.号和$号和号和号

    4.应全部小写

    ***一个MongoDB实例可承载多个数据库***:

    新建data/db2

    重新启动MongoDB:bin/monod --dbpath=../data/db2 --port 27018

    Web端口:28018

    启动shell:bin/mongo --port 27018

    6)系统保留数据库

    7)admin:这是root数据库,添加用户到该数据库中,该用户会自动继承所有数据库权限

    8)local:这个数据库中的数据永远不会被复制,可以用于存储限于本地数据单台服务器的任意集合

    9)config:分片时,config数据库在内部使用,保存分片信息(config数据就保存分片的信息,就相当于配置服务器)

    10)把数据库名放集合名前,得到的就是集合的完全限定名称,叫命令空间。命令空间长度不能超过121字节,实际使用时应小于100字节

    ***完全限定名称***

    >bbs.account --完全限定名

    二、MongoDB shell详解

    1.mongodb自带shell工具的(mongo)

    1)shell使用及常用命令

    2)mongodb数据工具(包括导入导出)

    shell使用常用命令:

    ./mongo --port 27017

    show dbs ---已有数据库列表

    show collections ---已有集合列表

    show users ---已有用户列表

    use dbname ---切换数据库,系统自动延迟创建该数据库

    db.account.save({'name':'test','addr':'china'}) --创建集合

    db.account.find()---查看集合数据

    db.dropDatabase() ---删除数据库(当前)

    db.account.drop() --删除当前数据集合

    启动shell(默认链接端口是27017):

    [root@hadoop-senior01 bin]# ./mongo

    或者

    [root@hadoop-senior01 bin]# ./mongo --port 27017

    查看数据库:

    > show dbs

    admin 0.000GB

    local 0.000GB

    > help

    也可以切换当前不存在的数据库(动态的创建,延迟性加载,和关系型数据库不一样):

    > use sb

    switched to db sb

    > show collections

    > db.account.save({'name':'test','addr':'china'})

    WriteResult({ "nInserted" : 1 })

    > show collections

    account

    > show dbs

    admin 0.000GB

    local 0.000GB

    sb 0.000GB

    > db.account.find()

    { "_id" : ObjectId("58c724c5290846e2f0647206"), "name" : "test", "addr" : "china" }

    mongodb根据算法自动分配id,也可以自定义,通常使用自定义算法

    删除数据集合:

    > db.account.drop()

    true

    删除当前数据:

    > db.dropDatabase()

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

    > show dbs

    admin 0.000GB

    local 0.000GB

    2.MongDB数据工具

    数据库组件:mongod,mongos(分片的时候采用),mongo

    数据库工具

    mongodump -h dbhost -d dbname -o dbdirectory --数据库备份

    mongorestore -h dbhost -d dbname --dir dbdirectory --数据库恢复

    ./bsondump dump/bbs/account.bson --查看bson对象

    ./mongoexport -d bbs -c account -q {} -f name,addr --csv >account.csv --数据导出工具,导出为csv格式

    ./mongoexport -d bbs -c account -q {} -f name,addr>account.json导出为json格式

    ./mongoexport -d bbs -c account -q ‘{“name”:”test2”}’ -f name,addr -csv>account.csv带查询条件导出

    ./mongoimport -d ssb -c account --type csv --headerline --drop <mydata/account.csv--数据导入工具,导入csv文件

    ./mongoimport -d bbs -c account --type json --drop<account.json --导入json文件

  • 相关阅读:
    [转]如何得到Oracle跟踪文件的文件名
    [转]一张图即可说明常规B/S架构
    [原]SQL中获得序列的方法
    [摘]sql走索引,怎么始终有物理读?
    CSS3太强悍了
    [原]简单分析《趣味题》中的SQL
    SendArp获取MAC地址
    nbtstat a ip 获取MAC地址等
    C#定时器的使用
    C#调用WMI关机示例
  • 原文地址:https://www.cnblogs.com/lzhl/p/6580547.html
Copyright © 2020-2023  润新知