赞
踩
设置数据存储时,你的首要任务是回答以下问题:“我想存储哪些数据以及这些字段之间如何关联?”。
本指南使用一个假设的库存数据库来跟踪项目及其数量、大小、标签和评级。
以下是你可能希望捕获的字段类型的示例:
名称 | 数量 | 尺寸 | 地位 | 标签 | 评分 |
---|---|---|---|---|---|
杂志 | 25 | 14x21,cm | 一种 | 棕色,有衬里 | 9 |
笔记本 | 50 | 8.5x11,英寸 | 一种 | 大学统治,穿孔 | 8 |
纸 | 100 | 8.5x11,英寸 | D | 水彩 | 10 |
规划师 | 75 | 22.85x30,cm | D | 2019年 | 10 |
明信片 | 45 | 10x,cm | D | 双面,白色 | 2 |
虽然表可能看起来是存储数据的好地方,但正如你从上面的示例中看到的,此数据集中的某些字段需要多个值,并且如果在单个列中建模(例如例如 尺寸和标签)。
在 SQL 数据库中,可以通过创建关系表来解决这个问题。
在 MongoDB 中,数据存储为文档。这些文档以JSON(JavaScript Object Notation)格式存储在 MongoDB 中。JSON 文档支持嵌入字段,因此相关数据和数据列表可以与文档一起存储,而不是与外部表一起存储。
JSON 格式为名称/值对。在 JSON 文档中,字段名和值用冒号分隔,字段名和值对用逗号分隔,字段集封装在“花括号”({})中。
如果你想开始对上述行之一进行建模,例如这一行:
名称 | 数量 | 尺寸 | 地位 | 标签 | 评分 |
---|---|---|---|---|---|
笔记本 | 50 | 8.5x11,英寸 | 一种 | 大学统治,穿孔 | 8 |
可以从name
和quantity
字段开始。在 JSON 中,这些字段如下所示:
{"名称": "笔记本", "数量": 50}
并且某些项目有多个评级,因此ratings
可能表示为包含字段的文档列表scores
:
[ { "score": 8 }, { "score": 9 } ]
而且你可能需要为每个项目处理多个标签。因此,你也可以将它们存储在列表中。
[ "college-ruled", "perforated" ]
最后,存储库存项目的 JSON 文档可能如下所示:
- {
- "name": "notebook",
- "qty": 50,
- "rating": [ { "score": 8 }, { "score": 9 } ],
- "size": { "height": 11, "width": 8.5, "unit": "in" },
- "status": "A",
- "tags": [ "college-ruled", "perforated"]
- }
这看起来与你在步骤 1 中开始使用的表格数据结构非常不同。
恭喜。您现在已经了解如何使用 JSON 文档构建数据。
MongoDB是一个开源文档数据库,提供高性能,高可用性和自动扩展,旨在为WEB应用提供可扩展的高性能数据存储解决方案。
- 基于分布式文件存储数据库(就是一个数据库
- C++语言编写
- 支持的数据结构非常松散,是类似json的bson格式(后期插入修改数据写JSON
MongoDB中的记录是一个文档,它是由字段和值(key=>value)对组成的数据结构。 MongoDB文档与JSON对象相似。 字段的值可能包括其他文档,数组和文档数组。
- JSON(JavaScript Object Notation, JS 对象简谱)是一种轻量级的数据交换格式
- bson(二进制JSON)
在mongodb中基本的概念是文档(document)、集合(collection)、数据库(database)。
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins | 表连接,MongoDB不支持 | |
primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
安装教程:https://blog.csdn.net/qq_34731574/article/details/57416920
命令执行完毕后,在浏览器输入:http://localhost:27017,
检查是否安装成功
安装成功后,将MongoDB服务器作为Windows服务运行。
1、自行创建data文件夹和日志log文件夹,在data文件夹中创建db子文件夹,用来存放数据库,然后在mongo.cfg中添加配置信息:
- dbpath=D:\MongoDB\data\db
- logpath=D:\MongoDB\log\mongo.log
2、接着在 bin 目录下,输入:
- 例如: mongod –config D:\MongoDB\mongo.cfg –install –serviceName “MongoDB” ;
-
- 注意1:比如通过管理员身份运行DOS窗口 否则没有权限创建失败
- 注意2:得提前创建数据和日志存放目录
3、配置环境变量:在系统的环境变量 path的值 后面加上mongodb的安装路径
在path值的最后加 ;D:\MongoDB\mongodb\bin(分号不要忘)
4、打开mongo的服务: net start MongoDB
5、关闭服务:net stop MongoDB
- show databases
- 或者
- show dbs
admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
use 数据库名
以上示例命令中,“local” 是要链接的数据库。
数据库也通过名字来标识。数据库名可以是满足以下条件的任意UTF-8字符串。
不能是空字符串("")。 不得含有’ '(空格)、.、$、/、\和\0 (空字符)。 应全部小写。 最多64字节。 |
有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库。
但是,当我们指定连接不存在的数据库时:并不会报错
这是MongoDB的隐式创建的方法,后面当对其插入集合文档时候自然创建。
show collections
db.createCollection('集合名')
隐式创建数据库test1,查看是没有集合的,通过语句创建集合’c1’ ,‘c2’。
语法:db.集合名.drop()
文档是一组键值(key-value)对(即BSON)。MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是 MongoDB 非常突出的特点。
{"name":"mantianxing","others":"xiaoxiannv"}
下表列出了 RDBMS 与 MongoDB 对应的术语:
RDBMS | MongoDB |
---|---|
数据库 | 数据库 |
表格 | 集合 |
行 | 文档 |
列 | 字段 |
表联合 | 嵌入文档 |
主键 | 主键 (MongoDB 提供了 key 为 _id ) |
数据库服务和客户端 | |
Mysqld/Oracle | mongod |
mysql/sqlplus | mongo |
需要注意的是:
①. 文档中的键/值对是有序的。
②. 文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。
③. MongoDB区分类型和大小写。
④. MongoDB的文档不能有重复的键。
⑤. 文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。
文档键命名规范:
键不能含有\0 (空字符)。这个字符用来表示键的结尾。
和$有特别的意义,只有在特定环境下才能使用。
以下划线"_"开头的键是保留的(不是严格要求的)。
语法:db.集合名.insert(JSON数据)
说明:集合存在-则直接插入数据,集合不存在-隐式创建
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。