您当前的位置: 首页 >  sql

寒冰屋

暂无认证

  • 1浏览

    0关注

    2286博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Mongo DB教程及SQL与Mongo DB查询的映射

寒冰屋 发布时间:2021-08-04 10:51:29 ,浏览量:1

目录

介绍

在机器上设置Mongo DB

启动Mongo DB

下载RoboMongo

MongoDB术语

MongoDB的要点

查询时间到了

MongoDB函数

MongoDB中的自动递增ID(SQL Server中的标识)

第1步

第2步

第3步

第4步

​​​​​​​

介绍

欢迎来到MongoDB教程。这是MongoDB文章系列的第一部分。

以下是所有三个部分的链接:

  1. Mongo DB教程及SQL与Mongo DB查询的映射
  2. MongoDB 教程 - 第 2 天
  3. MongoDB 教程 - 第 3 天(性能 - 索引)

在第一部分中,由于我们是MongoDB 和No-SQL的新手,我想从No-SQL的定义开始。

No-SQL:No-SQL代表Not Only SQL。No-SQL是非关系型数据库。No-SQL数据库不遵循RDMS规则,No-SQL数据库不使用SQL查询数据。

No-SQL数据库可以分为四类:

  1. 文件存储
  2. 图存储
  3. 列值存储
  4. 键值存储

MongoDB属于文档存储数据库。

文档存储数据库:在文档存储数据库中,数据以文档的形式存储。它扩展了键值存储数据库概念。

Mongo DB和Couch DB是两个主要的文档存储数据库。Mongo DB以文档的形式存储数据。这是示例文档的示例。

在机器上设置Mongo DB

从下面的MongoDB官方站点下载MongoDB(根据您的操作系统下载MSI文件)。

  • https://www.mongodb.org/downloads#production

安装MSI文件(如果是Window操作系统,默认位置是(C:\Program Files\MongoDB)。

复制此文件夹并将其放置在您的C盘或任何其他驱动器中,并在C盘中创建一个名为data的文件夹,并在data文件夹中创建一个名为db的文件夹。

所以在C盘,我们现在有两个文件夹:

  1. MongoDB(从安装位置复制)
  2. data/db(在数据文件夹内创建一个名为data的文件夹和一个名为db的文件夹)
启动Mongo DB

转到我们放在c盘的MongoDB文件夹中的bin文件夹。

就我而言,bin文件夹位于MongoDB文件夹内。(它可以在服务器文件夹内,也可以在下面)

C:\Program Files\MongoDB\Server\3.0\bin

并双击Mongod.exe(它将打开命令提示符并启动MongoDB服务器)。

最后一行应该说“等待连接... ”,如下所示,这意味着我们的Mongo DB服务器已成功启动:

下载RoboMongo

RoboMongo。以Shell为中心的跨平台开源MongoDB管理工具(即Admin GUI)。[它] 嵌入了相同的JavaScript引擎(基于Mozilla SpiderMonkey),为MongoDB的mongo shell提供支持。这意味着您可以在Robomongo中重用您现有的MongoDB Shell技能。

我们可以从名为Robomongo.org的Robomongo原始站点下载Robomongo。这是网址:

  • https://robomongo.org/

下载后,运行EXE并转到文件-->连接(确保您的mongodb服务器已启动并运行,我们在最后一步通过Mongod.exe运行)

MongoDB术语

在继续之前,我们应该了解MongoDB的术语:

操作

在SQL中

在MongoDB中

Create

Insert

Insert

Read

Select

Find

Update

Update

Update

Delete

Delete

Remove

Table

Table

Collection

Row

Row

Document

MongoDB的要点
  1. MongoDB以Json格式存储数据(我们称之为BSON(Binary JSON))
  2. JSON代表JavaScript Object Notations,看起来像{“Name”:”Vijay”}
  3. JSON文档将数据存储在键值对中,如{“X”:1,”Y”:2,”Z”:3}
  4. JSON中有两种基本结构:
    1. 数组:事物列表在项目列表中表示[……..]
    2. 字典:关联地图{key:Value}

例如{Name : 'Vijay',City : 'Shamli',interest : ["Sports" ,"Music" ]}Name和city是字典,Interest是一个数组。

  1. Mongo Db是Schema less,Schema Less意味着两个文档不需要是相同的schema。集合中的第一个文档可以是:{Name:"Vijay",Email:"VijayRana1091@gmail.com"}同一集合中的第二个文档可以是:{Name:"Vijay",Email:"VijayRana1091@gmail.com",Address:“Delhi”}
  2. MongoDB不支持jion。
  3. Mongo DB不支持事务。
查询时间到了

我们将在这里看到一些我们每天在SQL Server中运行的查询以及在Mongo DB中的等效查询。

为此,我在SQL Server中创建了一个具有以下架构的表,并在MongoDB中创建了一个相同的集合(记住表是MongoDB中的一个集合)。

我们将在MongoDB中创建相同的表,并使用MongoDB对该表进行不同的操作。

操作

SQL

MongoDB

选择数据库

使用测试

使用测试

我们将收到一条消息“切换到db测试”。

插入记录

Insert into Student Values_
(1,'Vijay', 'VijayRana1091@gmail.com', _
'9711965544','Delhi')

db.Student.insert(_
{"_id":1,"Name":"Vijay",_
"Email":"VijayRana1091@gmail.com",
"PhoneNo":"9711965544",_
"Address":"Delhi"}
)

注意:在MongoDb中_id用作主键。如果我们不会在此列中插入任何值,那么 MongoDB将自动在Table中插入唯一ID。

在SQL Server和MongoDB中插入更多记录(附加SQL脚本和MongoDB脚本)

  • 下载源代码 - 597B

运行脚本后,我们在Student表(SQL服务器和MongoDB)数据库中有以下数据。

select

选择所有列:

select * from student

选择几列:

select ID,Name from Student

选择所有列:

db.Student.find()

选择几列:

db.Student.find({},{"Name":true})

我们使用find()Method 从表中提取所有记录。

Where 子句

select * from student _
where Name='Vijay'

db.Student.find({Name:"Vijay"})

大于和小于

select * from student where ID>2

select * from student where ID>=2

select * from student where ID

关注
打赏
1665926880
查看更多评论
立即登录/注册

微信扫码登录

0.0973s