操作MongoDB

在Node.js中操作MongoDB免费看

MongoDB数据库简介,MongoDB数据库与MySQL数据库的对比,MongoDB数据库的使用

06-27侠课岛    初级拔高       

后端/Node.js/Node.js 中的数据库操作 6     0     98

3. 在 Node.js 中操作 MongoDB

自关系型数据库(最有名的如 Oracle、MySQL 等)发明以来,使得数据的存储与建模变得十分方便。关系型数据库至今仍然是我们进行系统开发时的首选技术之一。

然而随着互联网技术的兴起,过去单一的服务器逐渐无法承载流量。因此出现了分布式的架构。在面对分布式架构的场景下,传统的关系型数据库便有一些力不从心了。因此便产生了非关系型数据库(NoSQL),而其中最具有代表性的就是我们这一章涉及的的 MongoDB。

NoSQL 并非是“不要关系型数据库”的含义,而是 Not Only SQL (不仅是关系型数据库) 的含义。因此我们需要知道,关系型数据库与非关系型数据库并非是对立面的存在,两者都是根据我们的需求而诞生出的技术。在工作中解决问题时,选择合适的技术会提高我们的工作效率。

3.1 MongoDB 数据库简介

MongoDB 作为非关系型数据库(NOSQL)的代表。最早在 2007 年由 10gen 团队开发。是一个由 C++ 编写的基于分布式文件存储的开源数据库。与传统 SQL 最大的不同在于其数据结构是由 Key,Value 组成。形式类似于 JSON,因此在与 Node.js 的使用上有着天然的优势。

MongoDB 与 MySQL 的对比(非关系型与关系型的对比)

MongoDB 与 MySQL 的最明显的特点就是存储的形式。在上一章中,我们介绍了 MySQL 是将数据划分成“表”的形式进行存储,而在 MongoDB 中,对应的则是“集合”(collection)。两者间的区别简单的可以看下面的表格。

编号 SQL MongoDB 对应关系
1 database database 数据库
2 table collection 表 -- 集合
3 row document 行(一行数据)-- 文档
4 column fields 列(字段)-- 字段域
5 primary key primary key 主键 -- 主键(MongoDB 默认 _id )

而从数据存储的形式上来看,MongoDB 也更像是 JSON 格式。下面是 MongoDB 中记录登录信息的内容。(不恰当的比喻就是,我们把 SQL 的表转过来了。把字段作为 key,对应的值作为 value,形成了一个接一个的类 JSON 形式的文档(document))。在这个例子中,我们可以发现在 MongoDB 中,任何格式的数据都可以存放(如字符串、数字、数组、对象、日期等)

{
    "_id" : "DESKTOP-6MLU4KM-1537835840827",
    "hostname" : "DESKTOP-6MLU4KM",
    "startTime" : ISODate("2018-09-25T00:37:20.000Z"),
    "startTimeLocal" : "Tue Sep 25 08:37:20.827",
    "cmdLine" : {
        "net" : {
            "port" : 11111
        },
        "storage" : {
            "dbPath" : "D:\\WorkSpace\\KSurvey\\data"
        }
    },
    "pid" : NumberLong(1964),
    "debug" : false,
    "maxBsonObjectSize" : 16777216,
    "storageEngines" : [ 
        "devnull", 
        "ephemeralForTest", 
        "mmapv1", 
        "wiredTiger"
    ]
}

本教程图文或视频等内容版权归侠课岛所有,任何机构、媒体、网站或个人未经本网协议授权不得转载、转贴或以其他方式复制发布或发表。

评价

6

本课评分:
  •     非常好
难易程度:
  •     适中的
|
教程
粉丝
主页

签到有礼

已签到2天,连续签到7天即可领取7天全站VIP

  • 1
    +2 金币
  • 2
    +3 金币
  • 3
    +5 金币
  • 6
    +7 金币
  • 5
    +6 金币
  • 4
    暖心福利
    自选分类VIP ×1天
  • 7
    惊喜大礼

    自选分类VIP ×3天 +20金币
  • 持续签到 +8 金币

金币可以用来做什么?