mongodb 数据库无模式应用
mongodb 无模式应用,采用关系型数据库无法企及的优势。
mongodb相对RDBMS的优势
无模式:mongodb是文档型数据库,集合中包括多个文档,每个文档包括多个字段,不同文档之间结构可以不同。除此还有其他优势如下:
- 单个对象的结果非常清晰
- 没有复杂的连接
- 强大的查询能力,支持动态查询
- 方便优化
- 容易扩展
- 无需应用对象和数据库对象之间转换
- 使用内存存储工作集,提升数据访问速度
mongodb创建数据库和集合
use DATABASE_NAME
该命令创建一个数据库,如果数据库不存在则新建,否则返回已经存在的数据库。
db.createCollection(name, options)
创建集合,参数name是集合的名称,Options是文档参数,用于知道集合的配置。集合也可以先不创建,当插入数据时自动创建。
insert()方法
语法如下:
db.COLLECTION_NAME.insert(document)
示例:
db.mycol.insert({
_id: ObjectId(7df78ad8902c),
title: 'MongoDB Overview',
description: 'MongoDB is no sql database',
by: 'tutorials point',
url: 'http://www.tutorialspoint.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
})
这里mycol是集合的名称,可以已存在,如果库中不存在,那么mongodb先创建,然后再插入。这时关系型数据库无法比拟的优势!!!
如果你定义表相关的元数据,如表名称、描述,以及每个字段信息的描述(名称、描述、数据类型、约束等),基于这些元数据生成公共功能代码或报表;
对RDBMS先create语句创建表,然后生成相应功能,而mongodb则无需先创建表。这还不算啥,现实中随着业务变更,表结构变化(增加、减少字段),那关系型数据库就非常麻烦了,alert
table,里面的数据怎么办,字段长度变了怎么办?mongodb则非常从容,你变了,我不管啊,该怎么存还怎么存,我本来就没有模式限制啊,你只要记录自己的元数据实现你自己业务,其他事情交给mongodb!
本文参考链接:https://blog.csdn.net/neweastsun/article/details/58690041