mongoDB学习笔记_01

Posted hylinux

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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:"[email protected]"})

9、使用save()   --如何集合没有会自动创建db.user.save({name:‘niuh‘,email:"[email protected]"})

 

 

 

 

 

以上是关于mongoDB学习笔记_01的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB学习笔记

mongoDB学习笔记_02

mongodb 学习笔记

MongoDB快速入门学习笔记3 MongoDB的文档插入操作

MongoDB学习笔记

MongoDB学习笔记:JavaScript shell