zoukankan      html  css  js  c++  java
  • 【mongoDB】学习笔记_01

    MongoDB 简介

    简介

    MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的数据类型。

    面向集合的存储

    在 MongoDB 中,一个数据库包含多个集合,类似于 MySQL 中一个数据库包含多个表;一个集合包含多个文档,类似于 MySQL 中一个表包含多条数据

    MongoDB 基本概念

    数据库

    • 一个 MongoDB 可以创建多个数据库
    • 使用 show dbs 可以查看所有数据库的列表
    • 执行 db 命令则可以查看当前数据库对象或者集合
    • 运行 use 命令可以连接到指定的数据

    文档

    文档是 MongoDB 的核心,类似于 SQLite 数据库(关系数据库)中的每一行数据。多个键及其关联的值放在一起就是文档。在 Mongodb 中使用一种类 json 的 bson 存储数据,bson 数据可以理解为在 json 的基础上添加了一些 json 中没有的数据类型。

    文档的逻辑联系

    假设存在用户和地址两个“文档”

    { "name": "Tom Hanks", "contact": "987654321", "dob": "01-01-1991" }#user文档 { "building": "22 A, Indiana Apt", "pincode": 123456, "city": "chengdu", "state": "sichuan" }#address文档

    第一种关系(嵌入式关系),将address文档嵌入到user文档中:

    "name": "Tom Hanks", "contact": "987654321", "dob": "01-01-1991" ,"address":{ "building": "22 A, Indiana Apt", "pincode": 123456, "city": "chengdu", "state": "sichuan" }}

    存在多个地址的情况

    "name": "Tom Hanks", "contact": "987654321", "dob": "01-01-1991" ,"address":[

    "building": "22 A, Indiana Apt", "pincode": 123456, "city": "chengdu", "state": "sichuan" },

    "building": "23 A, Indiana Apt", "pincode": 123456, "city": "chengdu", "state": "sichuan" }

    ]}

    第二种关系(引用式关系):将两个文档分开,通过引用文档的_id字段来建立关系

    { "contact": "987654321", "dob": "01-01-1991", "name": "Tom Benzamin", "address_ids": [ ObjectId("52ffc4a5d85242602e000000") #对应address文档的id字段 ] }

    集合

    集合就是一组文档的组合,就相当于是关系数据库中的表,在 MongoDB 中可以存储不同的文档结构的文档。例如把上面的用户和地址的文档同时放进一个集合中

    常用数据库操作:

    1、创建数据库,好像启动服务器后,没有直接特别的创建命令,直接使用use 命令,如 use mydb

    2、查看当前连接的数据库或者集合 db

    3、查看所有的数据库 show dbs

      ---刚开始学习时发现大量使用use,然后show dbs看不到新建的数据库,

      列出的所有数据库中看不到 mydb 或者显示 mydb(empty) ,因为 mydb 为空,里面没有任何东西,MongoDB 不显示或显示 mydb(empty)

    4、删除数据库 使用use进入数据库,然后通过db.dropDatabase()

         删除成功{“dropped”:"aa","ok":1}

    5、创建集合,使用db.createCollection(”user“)

    6、查看集合,show conllections

    7、删除集合db.集合名.dorp()  删除成功返回true

    8、向集合插入数据db.user.insert({name:'niuh',email:"niuh@126.com"})

    9、使用save()   --如何集合没有会自动创建db.user.save({name:'niuh',email:"niuh@126.com"})

     

  • 相关阅读:
    C#学习第四弹之封装、继承和多态
    C#学习第三弹之给常量赋值可能引发的问题
    C#学习第二弹之C#与.NET框架
    hdu 5199 map或二分或哈希
    hdu 5195 线段树
    hdu 2545 并查集
    ACM数论模板
    C#学习第一弹之Hello World
    对字符串进行频繁拼接的话,使用StringBuffer或者StringBuilder
    String中根据,(逗号)进行分割
  • 原文地址:https://www.cnblogs.com/hylinux/p/6679352.html
Copyright © 2011-2022 走看看