NoSQL 数据库

数字拾光者
• 阅读 1218

使用 MongoDB 持久化文档数据

有一些数据的最佳表现形式是文档(document)。也就是说,不要把这些数据分散到多个表、节点或实体中,将这些信息收集到一个非规范化(也就是文档)的结构中会更有意义。尽管两个或两个以上的文档有可能会彼此产生关联,但是通常来讲,文档是独立的实体。能够按照这种方式优化并处理文档的数据库,我们称之为文档数据库。

例如,假设我们要编写一个应用程序来获取大学生的成绩单,可能需要根据学生的名字来查询其成绩单,或者根据一些通用的属性来查询成绩单。但是,每个学生是相互独立的,任意的两个成绩单之间没有必要相互关联。尽管我们能够使用关系型数据库模式来获取成绩单数据(也许你曾经这样做过),但文档型数据库可能才是更好的方案。

文档数据库不适用的场景

文档数据库不是通用的数据库,它们所擅长解决的是一个很小的问题集。
有些数据具有明显的关联关系,文档型数据库并没有针对存储这样的数据进行优化。例如,社交网络表现了应用中不同的用户之间是如何建立关联的,这种情况就不适合放到文档型数据库中。

使用 Neo4j 操作图数据

文档型数据库会将数据存储到粗粒度的文档中,而图数据库会将数据存储到多个细粒度的节点中,这些节点之间通过关系建立关联。因为数据的结构是图,所以可以遍历关联关系以查找数据中你所关心的内容,这在其他数据库中是很难甚至无法实现的。

例如,社交网络图谱,在社交网络中,公司、员工、技能的信息,这些都是节点,它们之间的关系和朋友之间的关系都是边,在这里面图数据库可以做一些非常复杂的公司之间关系的查询。比如说公司到员工、员工到其他公司,从中找类似的公司、相似的公司,都可以在这个系统内完成。

使用 Redis 操作 key-value 数据

Redis 是一种特殊类型的数据库,它被称之为 key-value 存储。顾名思义,key-value 存储保存的是键值对。实际上,key-value 存储与哈希 Map 有很大的相似性。可以不太夸张地说,它们就是持久化的哈希 Map。
当你思考这一点的时候,可能会意识到,对于哈希 Map 或者 key-value 存储来说,其实并没有太多的操作。我们可以将某个 value 存储到特定的 key 上,并且能够根据特定 key,获取 value。差不多也就是这样了。

点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
Spring Boot系列(八) Spring Boot中使用MongoDB数据库
MongoDB是一个开源的NoSQL文档数据库,它使用一个JSON格式的模式(schema)替换了传统的基于表的关系数据。SpringBoot为使用MongoDB提供了很多便利,包括springbootstarterdatamongodb'StarterPOM'。引入springbootstarterdatamongodb包,在po
Stella981 Stella981
3年前
SpringBoot 中 mongo多数据源配置新姿势
SpringBoot对常用的数据库支持外,对NoSQL数据库也进行了封装自动化。这一篇主要讲springboot与mongo多数据源相关的配置1、mongo的介绍MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式,这里不再多做说明
Wesley13 Wesley13
3年前
3. XML实体注入漏洞的利用与学习
XML实体注入漏洞的利用与学习前言XXEInjection即XMLExternalEntityInjection,也就是XML外部实体注入攻击.漏洞是在对非安全的外部实体数据进行处理时引发的安全问题.在XML1.0标准里,XML文档结构里定义了实体(entity)这个概念.实体可以通过预定义在文档中
Wesley13 Wesley13
3年前
NoSQL
MongoDB是文档类数据库(json),是海量级数据存储的数据库被称为最像关系型数据库的NoSQL第一章:逻辑结构MongoDB逻辑结构MySQL逻辑结构库database库集合表文档数据行第二章:安装部署1.系统准备(1)redhat或centos6.2以上系统
Wesley13 Wesley13
3年前
mongoDB概述
mongoDB介绍是一个开源的文档数据库,基于分布式文件存储的数据库。由C语言编写,并领先的 NoSQL(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.yiibai.com%2Fnosql)数据库(非关系型数据库)MongoDB
Stella981 Stella981
3年前
MongoDB 文档(Document)操作
MongoDB文档操作(增、删、改)在MongoDB中文档是指多个键及其关联的值有序地放置在一起就是文档,其实指的就是数据,也是我们平时操作最多的部分MongoDB中的文档的数据结构和JSON基本一样。所有存储在集合中的数据都是BSON格式BSON是一种类似JSON的二进制形式的存储格式,是
Stella981 Stella981
3年前
Sphinx实时索引
数据库中的数据很大,然后我有些新的数据后来加入到数据库中,也希望能够检索到,全部重新建立索引很消耗资源,这样需要用到“主索引增量索引”的思路来解决,这个模式实现的基本原理是设置两个数据源和两个索引。1、创建一个计数器一个简单的实现是,在数据库中增加一个计数表,记录将文档集分为两个部分的文档ID,每次重新构建主索引时,更新这个表先在mysql
Stella981 Stella981
3年前
ElasticSearch学习笔记(二)
了解以下几个概念1\.索引index简单的可以理解为关系型数据库的中库或者表。一个elasticsearch集群中可以有多个索引。2\.文档docment可以理解为表中的行数据,表示一个对象。每个文档有一个唯一标识\_id,相当于关系数据库的主键。一个索引中可以有多个结构相同的文档。3\.域
Wesley13 Wesley13
3年前
MongoDB快速入门
数据数数据库是一个集合的物理容器。每个数据库获取其自己设定在文件系统上的文件。一个单一的MongoDB服务器通常有多个数据库。集合集合是一组MongoDB的文件。它与一个RDBMS表是等效的。一个集合存在于数据库中。集合不强制执行模式。集合中的文档可以有不同的字段。通常情况下,在一个集合中的所有文件都是类似或相关目的。文档
小万哥 小万哥
1年前
数据库操作入门:PyMongo 和 MongoDB 的基本用法
MongoDBMongoDB是一种流行的NoSQL数据库,它将数据存储在类似JSON的文档中,使数据库非常灵活和可扩展PyMongoPython需要一个MongoDB驱动程序来访问MongoDB数据库。在本教程中,我们将使用MongoDB驱动程序"PyMo
小万哥 小万哥
1年前
学习如何使用 Python 连接 MongoDB: PyMongo 安装和基础操作教程
Python可以用于数据库应用程序。最流行的NoSQL数据库之一是MongoDBMongoDBMongoDB将数据存储在类似JSON的文档中,使数据库非常灵活和可扩展。您可以在上下载免费的MongoDB数据库PyMongoPython需要一个MongoDB
数字拾光者
数字拾光者
Lv1
泉眼无声惜细流,树阴照水爱晴柔。小荷才露尖尖角,早有蜻蜓立上头。
文章
6
粉丝
0
获赞
0