65.9K
CodeProject 正在变化。 阅读更多。
Home

NoSQL:MongoDB 初学者指南

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.71/5 (14投票s)

2016年2月22日

CPOL

4分钟阅读

viewsIcon

17451

NoSQL:MongoDB初学者

NoSQL: MongoDB 入门

什么是 NoSQL?

NoSQL,即 Not Only SQL,是一种非关系型数据库,它提供了一种存储和检索数据的机制,这些数据以不同于关系数据库中使用的表格关系的方式进行建模。

它分为 4 种类型

  1. 键值存储DynamoDB, MemCacheDB, Redis
  2. 图存储Allegro, InfiniteGraph
  3. 列存储Accumulo, Cassandra
  4. 文档存储MongoDB, Azure DocumentDB, Lotus Notes, CouchDB

MongoDB 是一种文档存储 No-SQL 数据库,它将记录存储为“文档”,通常可以将文档视为键值对的分组(它与存储实际文档(如 Word 文档)无关)。键始终是 string,值可以存储为 string、数字、布尔值、数组和其他嵌套键值对。值可以嵌套到任意深度。在文档数据库中,每个文档都有自己的模式——与 RDBMS 不同,在 RDBMS 中,给定表中的每一行都必须具有相同的列。

0

MongoDB

  1. 从以下链接下载 MongoDB 的相应版本:MongoDB 下载
  2. 安装您下载的 msi 文件。
  3. 安装后,您将能够在以下位置找到您的 MongoDB(理想情况下):“C:\Program Files\MongoDB

    现在我们将看看如何设置 MongoDB 环境。

  4. 以管理员模式打开命令提示符,然后浏览到 MongoDB 目录,如下所示:
    > cd C:\Program Files\MongoDB\Server\3.2\bin 
  5. MongoDB 需要一个数据目录来存储所有数据。其默认数据目录路径为“\data\db”。您可以指定如下备用路径。请在运行以下命令之前先创建目录
    > mongod.exe –dbpath d:\MongoDB\data
  6. 以上将显示并输出为

    1

  7. 打开另一个命令提示符,然后再次浏览到 MongoDB 目录,如下所示:
    >  cd C:\Program Files\MongoDB\Server\3.2\bin 
  8. 类型
    >  Mongo

    这将提供与 MongoDB 版本的测试连接,如下所示

    2

  9. 现在我们将创建一个数据库。在 MongoDB 中,数据库和表都是在第一次插入数据时自动创建的。使用 database-name 切换到您的数据库(即使尚未创建)。
    >  use customer

    这将创建一个名为 Customer 的数据库。

  10. Customer 中创建一个表:
    >  db.customerdetails.insert({id:”1″,Name:”Aditya”,Location:”India”})

    上面的语句将创建一个名为“customerdetails”的表,并插入一条记录,其中包含 id : 1 , Name : Aditya and Location : India

    我们将插入另一条记录

    >  db.customerdetails.insert({id:”2″,Name:”XYZ”})

    如上所述,列名不是固定的,可以不断更改。以及数据和列的数量。这是非关系数据库的优势。

  11. 现在我们将获取(选择)记录,如下所示
    >  db.customerdetails.find()

    这将给出如下输出

    3

  12. _id”是用于区分 MongoDB 中每一行的唯一字段。您也可以通过在插入时使用“_id”来给出自定义“_id”,如下所示
    > db.customerdetails.insert({_id:”2″,Name:”XYZ”})

    一旦我们获取记录,这将显示如下输出。

    4

  13. 需要了解的三个数据库命令

    输出显示如下

    5

    • show dbs – 列出所有数据库
    • use db_name – 切换到 db_name
    • show collections – 列出当前所选数据库中的所有表
  14. 现在我们将尝试更新插入的记录。假设我们将 Name : “XYZ” 更新为 “Swami”,其中 id : “2”。为此,我们将编写如下
    >  db.customerdetails.update({“id”:”2″},{$set:{“Name”:”Swami”}})

    上面的语句将获取 id = 2 的记录并更新 Name : “Swami”。语法是

      db.tablename.update({ criteria },{$set: {new value}})

    输出如下

    6

  15. 现在,如果我们有 2 条具有相同 id 的记录,即 id=1 会发生什么。它将更新它首先找到的记录,如下所示

    7

  16. 您还可以如下优化您的获取结果
    >  db.customerdetails.find({“id”: “1”})
    >  db.customerdetails.find({$where:”this.Name.length > 3″})

    注意:在上面的语句中,如果将“length”设置为“Length”,则不会产生结果。所有关键字都区分大小写。

    8

  17. 要删除记录,您可以使用如下“remove”语法
    db.customerdetails.remove({“_id”: “2”})

    输出将是

    9

  18. 要在浏览器上查看 MongoDB 中的数据库和数据,您需要在打开数据库时启用 rest 选项(而不是第 5 步)
    >  mongod.exe –dbpath d:\MongoDB\data –rest

虽然这有一些安全隐患,但您将能够轻松地查看和使用此数据。

然后您将能够使用 URL 查看:https://:28017/

这理想情况下是管理员视图。(比打开的端口 27017 多 1000)

您可以使用 URL 查看数据:http://127.0.0.1:28017/customer/customerdetails/

语法为:http://127.0.0.1:28017/databaseName/collectionName/

在我们的后续教程中,我们将研究如何访问此非关系型 MongoDB。

© . All rights reserved.