博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mongoDB
阅读量:4611 次
发布时间:2019-06-09

本文共 2881 字,大约阅读时间需要 9 分钟。

整理来自

https://www.shiyanlou.com/courses/running/50

1、简介

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

2、面向集合的存储

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

3、虚拟机开机配置

 

启动MongoDB服务,因为mongoDB并不随系统一起启动,可能以下命令运行后会等一小段的时间才会启动完毕。

$ sudo service mongodb start

进入MongoDB命令行操作界面(可能会出现connect failed,多试几次就行),在命令行中敲exit可以退出

$ mongo

实验中的布尔类型的ture用1代替,false用0代替

 

 ---------------------

基本概念

1、数据库

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

注意:数据库名可以是任何字符,但是不能有空格、点号和$字符

 

2、文档

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

例:

{"company":"Chenshi keji"}

3、文档的逻辑联系

假设有两个文档:

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

关系1:嵌入式关系:把address文档嵌入到user文档中

{   "name": "Tom Hanks",   "contact": "987654321",   "dob": "01-01-1991", "address": [{ "building": "22 A, Indiana Apt", "pincode": 123456, "city": "chengdu", "state": "sichuan" }, { "building": "170 A, Acropolis Apt", "pincode": 456789, "city": "beijing", "state": "beijing" }] }#这就是嵌入式的关系

关系2:引用式关系:将两个文档分开,通过引用文档的_id字段来建立关系

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

4、集合

集合就是一组文档的组合,就相当于是关系数据库中的表,在mongodb中可以存储不同的文档结构的文档 例:

{"company":"Chenshi keji"} {"people":"man","name":"peter"}

上面两个文档就可以存储在同一个集合中

 

5. 元数据

数据库的信息存储在集合中,他们统一使用系统的命名空间:DBNAME.system.* DBNAME可用db或数据库名替代

  • DBNAME.system.namespaces :列出所有名字空间
  • DBNAME.system.indexs :列出所有索引
  • DBNAME.system.profile :列出数据库概要信息
  • DBNAME.system.users :列出访问数据库的用户
  • DBNAME.system.sources :列出服务器信息
 

四、数据库的创建和销毁

1、创建数据库

启动服务后,进入 MongoDB 命令行操作界面:

$ mongo

使用 use 命令创建数据库:

> use mydb

查看当前连接的数据库:

> db

查看所有的数据库:

> show dbs

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

2、销毁数据库

使用 db.dropDatabase() 销毁数据库:

> use local switched to db local> db.dropDatabase()

查看所有的数据库:

> show dbs

五、集合(collection)的创建和删除

1、创建集合

在数据库 mydb 中创建一个集合

> use mydbswitched to db mydb> db.createCollection("users")

查看创建的集合:

> show collections

2、删除集合

删除集合的方法如下:(删除 users 集合)

> show collections> db.users.drop()

查看是否删除成功:

> show collections
 

六、向集合中插入数据

1、使用 insert()

插入数据时,如果 users 集合没有创建会自动创建。

> use mydbswitched to db mydb> db.users.insert([... { name : "jam",... email : "jam@qq.com"... }, ... { name : "tom", ... email : "tom@qq.com" ... } ... ])

2、使用 save()

插入数据时,如果 users 集合没有创建会自动创建。

> use mydb2switched to db mydb2> db.users.save([... { name : "jam",... email : "jam@qq.com"... }, ... { name : "tom", ... email : "tom@qq.com" ... } ... ])
 

转载于:https://www.cnblogs.com/wind90/p/4605777.html

你可能感兴趣的文章
CSS-上下文选择器
查看>>
ionic repeat 重复最后一个时要执行某个函数
查看>>
1.初识代码审计-基础
查看>>
[Vue-rx] Stream an API using RxJS into a Vue.js Template
查看>>
解决VC几个编译问题的方法——好用
查看>>
SPOJ #11 Factorial
查看>>
City Upgrades
查看>>
“人少也能办大事”---K2 BPM老客户交流会
查看>>
关于七牛进行图片添加文字水印操作小计
查看>>
DataSource数据库的使用
查看>>
CentOS开启samba实现文件共享
查看>>
MSSQL使用sqlbulkcopy批量插入数据
查看>>
证明一个数能被3整除,当且仅当它的各位数的和能被3整除
查看>>
2018秋寒假作业4—PTA编程总结1
查看>>
android自适应屏幕
查看>>
2019-北航面向对象-电梯作业总结
查看>>
SqlHelper
查看>>
初识算法、数据结构
查看>>
Luogu4069 SDOI2016 游戏 树链剖分、李超线段树
查看>>
Java的内部类真的那么难以理解?
查看>>