- 浏览: 7936926 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
在关系数据库中和nosql的设计时,对于schema的设计是不同的.比如MYSQL中,设计如下一个例子:
这个如果要转换为mongodb要如何设计呢,首先一个方法是全部放在一个collection中,如
这样的话,如果要查询people的所有信息,放在同一个collection中是很快的,当然也可以分开两个collection进行嵌套,如:
甚至可以这样:
如果是大部分只查询people的本身信息的话,那么建议分开两个collection存放,避免每次把不需要加载的信息加载进去了.
mysql> select * from people; +----+------------+ | id | name | +----+------------+ | 1 | Stephane | | 2 | John | | 3 | Michael | | 4 | Cinderella | +----+------------+ mysql> select * from passports; +----+-----------+---------+-------------+ | id | people_id | country | valid_until | +----+-----------+---------+-------------+ | 4 | 1 | FR | 2020-01-01 | | 5 | 2 | US | 2020-01-01 | | 6 | 3 | RU | 2020-01-01 | +----+-----------+---------+-------------+
这个如果要转换为mongodb要如何设计呢,首先一个方法是全部放在一个collection中,如
> db.people_all.find().pretty() { "_id" : ObjectId("51f7be1cd6189a56c399d3bf"), "name" : "Stephane", "country" : "FR", "valid_until" : ISODate("2019-12-31T23:00:00Z") } { "_id" : ObjectId("51f7be3fd6189a56c399d3c0"), "name" : "John", "country" : "US", "valid_until" : ISODate("2019-12-31T23:00:00Z") } { "_id" : ObjectId("51f7be4dd6189a56c399d3c1"), "name" : "Michael", "country" : "RU", "valid_until" : ISODate("2019-12-31T23:00:00Z") } { "_id" : ObjectId("51f7be5cd6189a56c399d3c2"), "name" : "Cinderella" }
这样的话,如果要查询people的所有信息,放在同一个collection中是很快的,当然也可以分开两个collection进行嵌套,如:
> db.people_embed.find().pretty() { "_id" : ObjectId("51f7c0048ded44d5ebb83774"), "name" : "Stephane", "passport" : { "country" : "FR", "valid_until" : ISODate("2019-12-31T23:00:00Z") } } { "_id" : ObjectId("51f7c70e8ded44d5ebb83775"), "name" : "John", "passport" : { "country" : "US", "valid_until" : ISODate("2019-12-31T23:00:00Z") } } { "_id" : ObjectId("51f7c71b8ded44d5ebb83776"), "name" : "Michael", "passport" : { "country" : "RU", "valid_until" : ISODate("2019-12-31T23:00:00Z") } } { "_id" : ObjectId("51f7c7258ded44d5ebb83777"), "name" : "Cinderella" }
甚至可以这样:
> db.passports_embed.find().pretty() { "_id" : ObjectId("51f7c7e58ded44d5ebb8377b"), "country" : "FR", "valid_until" : ISODate("2019-12-31T23:00:00Z"), "person" : { "name" : "Stephane" } } { "_id" : ObjectId("51f7c7ec8ded44d5ebb8377c"), "country" : "US", "valid_until" : ISODate("2019-12-31T23:00:00Z"), "person" : { "name" : "John" } } { "_id" : ObjectId("51f7c7fa8ded44d5ebb8377d"), "country" : "RU", "valid_until" : ISODate("2019-12-31T23:00:00Z"), "person" : { "name" : "Michael" } } { "_id" : ObjectId("51f7c8058ded44d5ebb8377e"), "person" : { "name" : "Cinderella" } }
如果是大部分只查询people的本身信息的话,那么建议分开两个collection存放,避免每次把不需要加载的信息加载进去了.
发表评论
-
mybatis generator中的字段大小写生成问题
2017-10-22 19:35 11388mybatis generator插件中,如果 mysql数据 ... -
MySQL统计一个列中不同值的数量
2017-07-11 14:04 16288https://yiqiwuliao.com/post/mys ... -
mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解决方法
2017-03-02 09:44 1793权限问题,授权 给 root 所有sql 权限 mysql ... -
几个不错的MYSQL 优化TIPS
2016-11-19 12:30 812图片来自http://imysql.com/的PDF分享 [ ... -
powerdesign 逆向ORACLE的坑
2016-09-27 17:08 570要注意的是,在WIN 64中,如果要用powerdesin 来 ... -
( 转)mysql中删除两条重复记录中的一条
2015-10-19 20:19 1332| id | createTime | labId | pub ... -
mysql中sql语句=,>的时候的索引设置
2015-05-02 12:27 1309在 https://www.percona.com/blog/ ... -
mysql中profile的使用
2015-04-30 11:11 2231mysql 的 sql 性能分析器主要用途是显示 sql 执行 ... -
mysql中的sql mode
2015-04-13 11:29 1153mysql sql mode小结 1 sql mode可以 ... -
PROCEDURE ANALYSE()为mysql提高性能提供建议
2015-04-02 16:37 1470procedure analyse();语法如下 select ... -
mongodb中意外退出的问题
2015-02-11 14:32 1340mongodb启动的时候,意外退出: Unclean shut ... -
mysql 5.5中保留字查询
2014-06-05 23:16 1488mysql 5.5中保留字查询 http://www.5is ... -
(转)oracle 临时表空间的增删改查
2014-03-18 12:44 1147oracle 临时表空间的增删改查 1、查看临时表空间 (d ... -
pl-sql developer安装
2014-02-07 09:16 1134一直都是机器本机上有oracle,所以装pl sql deve ... -
oracle中的nvl,nvl2等参数
2013-12-26 11:18 22851.nul函数将一个null值转换为一个实际的值。 数据类型可 ... -
Oracle中的ROWNUM rowid 以及MySQL中实现rownum功能类似的语句
2013-12-26 11:08 2364http://gong-10140.iteye.com/blo ... -
ORACLE XE版本的限制
2013-12-07 08:11 367110g中用户数据最大为4G, 11G中最大为11G,如果超出大 ... -
oracle中监控索引是否可用
2013-11-04 07:22 1079在oracle中,可以使用如下的方法监控索引是否可用: a ... -
mysql 5.6中的时间类型的新精度介绍
2013-10-28 09:33 8414留意到mysql 5.6中,可以使用select now(6) ... -
<<oracle索引技术》读书笔记1
2013-08-25 16:23 1330expert indexing in oracle datab ...
相关推荐
这包括定义框架结构元素、要素集和要素类、要素分类编码等,以及处理地理空间数据特有的问题,如拓扑关系和地图注记等。 #### 结论 通过对数据库设计尤其是元数据设计的深入了解,我们可以更好地管理和利用数据...
4.1.1 使用关系型数据库中的表格和列 63 4.1.2 列数据库对比RDBMS 65 4.1.3 列数据库当做键/值对的嵌套映射表 67 4.1.4 Webtable布局 70 4.2 HBase分布式存储架构 71 4.3 文档存储内部机制 73 4.3.1 用内存...
- **EER (Extended Entity Relationship) Modelling**:扩展了传统ER模型,提供更复杂的实体、关系和属性表示,适合大型复杂系统的建模。 - **ER to Relational Model Mapping**:将ER模型转换为关系模型,这是...
在IT领域,尤其是在数据库管理方面,Nosql(Not Only SQL)是一种非关系型数据库技术,它与传统的SQL数据库系统有着显著的区别。 Nosql-tests项目提供了一系列的Java示例代码,帮助开发者了解并实践如何与不同类型的...
数据库模式是数据库设计的核心部分,它定义了数据库的结构、规则和关系。在JSON(JavaScript Object Notation)中创建数据库模式是一种常见的做法,特别是在NoSQL数据库系统中,如MongoDB。JSON格式因其简洁、易读且...
通过对这些知识点的学习,可以帮助读者更好地理解和应用图数据库技术,尤其是在处理复杂关系网络和大规模数据集时的优势更为明显。此外,对于有兴趣深入了解HugeGraph与PostgreSQL结合使用的读者来说,还可以进一步...
Neo4j图数据库在处理高度互联的数据方面表现出色,特别适合于需要处理复杂关系和图结构的数据模型,如社交网络、推荐系统、网络拓扑结构等领域。 ### 图数据库的概念 图数据库基于图论原理,将数据抽象为顶点...
2. **GraphGist**:GraphGist是Neo4j社区的一个创新,它允许开发者通过一个交互式的在线平台创建和分享关于如何使用图数据库解决特定问题的例子。每个GraphGist通常包括一段描述、一个或多个Cypher查询以及结果的...
对于NoSQL数据库的支持,如MongoDB,则是通过封装NoSQL API并基于JDBC协议来实现。 #### 二、Mycat与MongoDB集成概述 自Mycat 1.3版本起,其正式支持了MongoDB数据库的接入。这一功能的实现主要依赖于Mycat内部对...
MongoDB是一个流行的NoSQL数据库,以其灵活性、可扩展性和高性能著称。在MongoDB中,数据以文档形式存储,这些文档由键值对组成,类似于JSON格式。Mongoose则为MongoDB提供了面向对象的接口,使得在Node.js应用中...
MongoDB则是一款流行的NoSQL数据库,以文档型数据存储为特点,适合处理半结构化和非结构化数据。本示例将讨论如何使用Java语言在Spark中连接MongoDB进行CRUD(创建、读取、更新和删除)操作,同时涉及到Spring框架和...
6. **开发流程**:构建这样的系统通常涉及以下步骤:安装和配置环境、设计数据库模型、编写API接口、实现业务逻辑、设置路由、集成测试、部署和维护。 7. **中间件机制**:在Koa2中,中间件是一个接收请求和响应...
在介绍中,对HBase进行了基础的定义和描述,提到其作为一种NoSQL数据库,如何使用它存储和处理数据。快速开始则会指导新用户如何开始搭建和使用HBase。 ### 配置 HBase的配置章节涉及了基础条件、运行模式、配置...
MongoDB是一个NoSQL数据库,以其灵活性、高性能和强大的数据模型而受到广泛欢迎,尤其是对于处理大规模、非结构化数据的Web应用。 ### 自动填充(Autopopulate) `mongoose-autopopulate` 库的核心功能是自动填充...
这些模型可能使用了像Mongoose这样的ORM(对象关系映射)库,使得与MongoDB等NoSQL数据库的交互变得更加简单。在用户注册或登录时,这些模型会被用来验证和存储用户信息。 `node_modules`目录包含了项目依赖的所有...
MongoDB是一个流行的NoSQL数据库,而Node.js则是一种基于Chrome V8引擎的JavaScript运行环境,两者结合可以实现全栈JavaScript开发。 首先,安装Mongoose是连接Node.js和MongoDB的关键。Mongoose是一个强大的...
Koa.js是Node.js的一个轻量级、高效的Web框架,而MongoDB则是一个强大的NoSQL数据库,两者结合为创建灵活、高性能的后端服务提供了坚实基础。 ### Koa.js Koa.js是由Express.js团队开发的下一代Node.js Web应用...
该项目的目标是提供一种可在SQL和NoSQL数据库,传入请求,传出请求等中广泛使用的模式。 :memo: 项目目标 跨节点和浏览器工作 简单的实现(没有幕后的魔力) 轻量级<5kb gzip压缩 快速地 最小的嵌套和样板 可...
在本例子中,我们将探讨如何在Pylons框架中集成非关系型数据库MongoDB。 MongoDB是一种流行的NoSQL数据库,以其高效、灵活的数据模型和强大的文档存储能力而闻名。在Pylons中集成MongoDB,我们可以利用Ming ORM...