NoSQL:MongoDB 初学者指南






4.71/5 (14投票s)
NoSQL:MongoDB初学者
NoSQL: MongoDB 入门
什么是 NoSQL?
NoSQL,即 Not Only SQL,是一种非关系型数据库,它提供了一种存储和检索数据的机制,这些数据以不同于关系数据库中使用的表格关系的方式进行建模。
它分为 4 种类型
- 键值存储:
DynamoDB
,MemCacheDB
, Redis - 图存储:
Allegro
,InfiniteGraph
- 列存储:
Accumulo
,Cassandra
- 文档存储:
MongoDB
, AzureDocumentDB
, Lotus Notes,CouchDB
MongoDB 是一种文档存储 No-SQL 数据库,它将记录存储为“文档”,通常可以将文档视为键值对的分组(它与存储实际文档(如 Word 文档)无关)。键始终是 string
,值可以存储为 string
、数字、布尔值、数组和其他嵌套键值对。值可以嵌套到任意深度。在文档数据库中,每个文档都有自己的模式——与 RDBMS 不同,在 RDBMS 中,给定表中的每一行都必须具有相同的列。
MongoDB
- 从以下链接下载 MongoDB 的相应版本:MongoDB 下载
- 安装您下载的 msi 文件。
- 安装后,您将能够在以下位置找到您的 MongoDB(理想情况下):“C:\Program Files\MongoDB”
现在我们将看看如何设置 MongoDB 环境。
- 以管理员模式打开命令提示符,然后浏览到 MongoDB 目录,如下所示:
> cd C:\Program Files\MongoDB\Server\3.2\bin
- MongoDB 需要一个数据目录来存储所有数据。其默认数据目录路径为“\data\db”。您可以指定如下备用路径。请在运行以下命令之前先创建目录
> mongod.exe –dbpath d:\MongoDB\data
- 以上将显示并输出为
- 打开另一个命令提示符,然后再次浏览到 MongoDB 目录,如下所示:
> cd C:\Program Files\MongoDB\Server\3.2\bin
- 类型
> Mongo
这将提供与 MongoDB 版本的测试连接,如下所示
- 现在我们将创建一个数据库。在 MongoDB 中,数据库和表都是在第一次插入数据时自动创建的。使用 database-name 切换到您的数据库(即使尚未创建)。
> use customer
这将创建一个名为
Customer
的数据库。 - 在
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”})
如上所述,列名不是固定的,可以不断更改。以及数据和列的数量。这是非关系数据库的优势。
- 现在我们将获取(选择)记录,如下所示
> db.customerdetails.find()
这将给出如下输出
- “
_id
”是用于区分 MongoDB 中每一行的唯一字段。您也可以通过在插入时使用“_id
”来给出自定义“_id
”,如下所示> db.customerdetails.insert({_id:”2″,Name:”XYZ”})
一旦我们获取记录,这将显示如下输出。
- 需要了解的三个数据库命令
输出显示如下
show dbs
– 列出所有数据库use db_name
– 切换到 db_nameshow collections
– 列出当前所选数据库中的所有表
- 现在我们将尝试更新插入的记录。假设我们将
Name : “XYZ”
更新为“Swami”
,其中id : “2”
。为此,我们将编写如下> db.customerdetails.update({“id”:”2″},{$set:{“Name”:”Swami”}})
上面的语句将获取
id = 2
的记录并更新Name : “Swami”
。语法是db.tablename.update({ criteria },{$set: {new value}})
输出如下
- 现在,如果我们有 2 条具有相同 id 的记录,即
id=1
会发生什么。它将更新它首先找到的记录,如下所示 - 您还可以如下优化您的获取结果
> db.customerdetails.find({“id”: “1”})
> db.customerdetails.find({$where:”this.Name.length > 3″})
注意:在上面的语句中,如果将“
length
”设置为“Length
”,则不会产生结果。所有关键字都区分大小写。 - 要删除记录,您可以使用如下“
remove
”语法db.customerdetails.remove({“_id”: “2”})
输出将是
- 要在浏览器上查看 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。