MongoDB:数据库介绍与基础操作
二、部署在本地服务器
在上次的学习过程中,我们主要进行了MongoDB运行环境的搭建和可视化工具的安装。此次我们将学习MongoDB有关的基本概念和在adminmongo上的基本操作。该文档中的数据库、集合等名称均无特殊意义,只是代指。
2.1配置环境变量
在文件资源管理器中找到可执行文件mongod.exe的路径,4.0版本默认路径为C:\Program Files\MongoDB\Server\4.0\bin。
我的电脑/此电脑(右键)→属性→高级系统设置→环境变量→系统变量(S)
找到系统变量(S)中的Path进行编辑,添加mongod.exe的路径到Path的变量值中。
在C盘的根目录中新建一个data文件夹,再在data里建一个db文件夹。
打开cmd窗口输入“mongod”启动MongoDB服务器,出现“NETWORK [initandlisten] waiting for connections on port 27017”表示配置成功。注意对这个cmd窗口不要进行任何操作,然后再打开一个cmd窗口,输入mongo连接Mongo,出现“>”表示启动成功,可输入一些简单的命令测试一下。

2.2配置文件
(1)在C盘根目录下的data文件夹中再创建一个log文件夹。
(2)创建配置文件
4.0版本的官方安装包中已经有配置文件mongod.cfg,默认储存在C:\Program Files\MongoDB\Server\4.0\bin,配置文件选项可参考https://docs.mongodb.com/manual/reference/configuration-options/。
如果没有配置文件,在其他文件夹下新建一个文本文档,命名为mongod.cfg然后编辑具体内容,再把该文件移进MongoDB文件夹下即可。
(3)以管理员身份打开命令行窗口,执行如下命令sc.exe create MongoDB binPath="\"mongod的bin目录\mongod.exe\" --service --config=\"配置文件的储存目录\mongod.cfg\"" DisplayName= "MongoDB" start="auto"。

(4)打开服务,找到MongoDB,显示登陆为本地系统时表示配置文件设置成功,此时可以右键启动Mongo服务

PS:
(1)MongoDB默认监听2717端口,启动数据库并设置数据库的储存路径、端口号:mongod --dbpath 储存路径 --port 端口号。例如mongod --dbpath D:\data --port 123。
(2)停止MongoDB:在MongoDB Shell中执行
use admin db.shutdownServer()
三、数据库介绍与基本概念
3.1MongoDB简介
MongoDB是为快速开发互联网Web应用而设计的数据库系统,基于NoSQL文档存储模型,在这种模型中,数据对象被存储为集合中的文档,而不是传统关系型数据库中的行和列。文档是以二进制JSON(BSON)对象的方式存储的。
可浏览此网址大致了解MongoDB:https://docs.mongodb.com/manual/faq/
(1)文档存储数据库
面向文档。将单个实体的所有数据都存储在一个文档中,而文档可存储在集合中。文档可包含描述实体的所有必要信息,包括子文档;集合中的文档是通过独一无二的键访问的。
而在RDBMS中,子文档通常存储为编码字符串或存储在独立的表中。
(2)集合
指一组用途相同或类似的文档,相当于传统SQL数据库中的表,但在MongoDB中,集合不受严格模式的管制,其中的文档可根据需要采用稍微不同的结构。
(3)文档
表示单个实体的数据,可包含嵌入的子文档。MongoDB的文档最大不能超过16MB。
(4)MongoDB不支持SQL,有它自己的查询语言。有关使用MongoDB查询语言的示例,可参考此网址:https://docs.mongodb.com/manual/crud/
或者也可以使用MongoDB Connector for BI来用SQL查询MongoDB集合。
3.2基本概念
(1)MongoDB和关系数据库的对比
每一个文档都有一个特殊的键”_id”,它在文档所处的集合中是唯一的,相当于关系数据库中的表的主键。

(2)MongoDB数据类型
文档以对象的方式从数据库返回,这些对象作为数据库、集合和游标操作,定义了查询、排序、集合以及其他运算符。在上个文档中我们讲到可视化工具adminMongo,事实上这是一个基于Node.js的可视化工具,在使用它之前,要先安装Node.js。而Node.js是基于JavaScript的,因此在Node.js中,运算符、参数和文档也是用JavaScript对象表示的。
(3)JavaScript基本语法:
这一部分内容可以参考专业的JavaScript教材或参考书,本文档就不在此赘述。学习参考《MongoDB入门经典》
四、基本操作(Mongo Shell)
(1)启动Mongo Shell:打开一个cmd执行mongod,再打开一个cmd执行mongo。
(2)基本操作:
show dbs/show database:显示当前的所有数据库
use 数据库名:进入到指定的数据库中,例如执行“use test”进入test数据库,显示“switched to db test”。注意在MongoDB中,数据库和集合都不需要手动创建,当我们创建文档时,如果文档所在的集合或数据库不存在,会自动创建数据库和集合。
db:表示当前所处的数据库
show collections:显示数据库中所有的集合
(3)增删查改:
MongoDB CRUD操作:https://docs.mongodb.com/manual/crud/
(4)可视化工具的应用
启动MongoDB和adminMongo,并访问地址:http://127.0.0.1:1234,连接以后出现类似以下画面:

可以进行增加和删除数据库等操作:

如将名为Jackson的database删除,增加一个名为GOT7的database后如图:

点击上图中的test,就进入了collection的画面,在这里可以进行基础增删查改的操作:

New document , add document, save document


但是当我们编辑文档的时候,总是会出现语法错误的提示,由于许多参考书中都是关于在Mongo shell上的操作方法,有关adminmongo的资料很少。因此我们下一步的目标就是探索出在可视化工具adminMongo中编辑文档的方法。
MongoDB:数据库介绍与基础操作的更多相关文章
- python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查
python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...
- MySQL 数据库中的基础操作
数据库中的表操作 1.创建表 表的表名命名规则: -- 数据库表命名规则重要说明: -- (1)数据库表名称可以支持大写字母A-Z,小写字母a-z,数字0-9,字符包括下划线 _ ,可以组合使用; - ...
- 二十三、MongoDb 数据库介绍、安装、启动和连接(非关系型数据库)
1.数据库和文件的主要区别 1. 数据库有数据库表.行和列的概念,让我们存储操作数据更方便2. 数据库提供了非常方便的接口,可以让 nodejs.php java .net 很方便的实现增加修改删除功 ...
- MongoDb 学习笔记(一) --- MongoDb 数据库介绍、安装、使用
1.数据库和文件的主要区别 . 数据库有数据库表.行和列的概念,让我们存储操作数据更方便 . 数据库提供了非常方便的接口,可以让 nodejs.php java .net 很方便的实现增加修改删除功能 ...
- ORM基础之ORM介绍和基础操作
一.ORM介绍 1.ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过 ...
- mongodb数据库安装及常见操作
客户端和服务端的安装 # rpm -ivh mongo-10gen-2.4.6-mongodb_1.x86_64.rpm mongo-10gen-server-2.4.6-mongodb_1.x86_ ...
- mongodb 数据库中 的聚合操作
- PyCharm介绍与基础操作
PyCharm是一种Python IDE(集成开发软件),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具. 1.1 PyCharm主界面 PyCharm包含4个主要区分,分别为菜单 ...
- Koa 操作 Mongodb 数据库
node-mongodb-native的介绍 使用基于官方的 node-mongodb-native 驱动,封装一个更小.更快.更灵活的 DB 模块, 让我们用 nodejs 操作 Mongodb 数 ...
随机推荐
- FFmpeg 学习(六):FFmpeg 核心模块 libavformat 与 libavcodec 分析
一.libavformat介绍 libavformat的主要组成与层次调用关系如下图: AVFromatContext是API层直接接触到的结构体,它会进行格式的封装和解封装,它的数据部分由底层提供, ...
- ansible基础-Jinja2模版 | 测试
一 简介 注:本文demo使用ansible2.7稳定版 Jinja2的测试语句被用来评估一个条件表达式,并且最终返回True或False,经常和「when」语句搭配使用. 测试语句和过滤器的相同点: ...
- [Swift]LeetCode509. 斐波那契数 | Fibonacci Number
The Fibonacci numbers, commonly denoted F(n) form a sequence, called the Fibonacci sequence, such th ...
- websocket+rabbitmq实战
1. websocket+rabbitmq实战 1.1. 前言 接到的需求是后台定向给指定web登录用户推送消息,且可能同一账号会登录多个客户端都要接收到消息 1.2. 遇坑 基于springbo ...
- Java异常处理:给程序罩一层保险
文/沉默王二 人这一生,总会遇到一些不可预料的麻烦,这些麻烦可能会让我们遭受沉重的打击.为了减轻因此承受的负担,我们就会买保险. 本着负责任的态度,我们程序员在写代码的时候,都非常的严谨.但程序在运行 ...
- C# 获取 ipv4的方法
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces(); foreach (NetworkInterface adap ...
- 使用ML.NET实现白葡萄酒品质预测
导读:ML.NET系列文章 本文将基于ML.NET v0.2预览版,介绍机器学习中的分类和回归两个重要概念,并实现白葡萄酒品质预测. 本系列前面的文章也提到了一些,经典的机器学习最主要的特点就是模拟, ...
- 按行切割大文件(linux split 命令简版)
按行切割大文件(linux split 命令简版) #-*- coding:utf-8 -*- __author__ = 'KnowLifeDeath' ''' Linux上Split命令可以方便对大 ...
- centos7修改网卡名字为传统名字
前言:在centos6及其之前的系统中,我们已经习惯了网卡为eth0,eht1这种网卡命名方式,在centos7上网卡名字为ens33,ens37,ens38等名字,很别扭,想统一下网卡的命名. 1 ...
- JVM(四)垃圾回收的实现算法和执行细节
全文共 1890 个字,读完大约需要 6 分钟. 上一篇我们讲了垃圾标记的一些实现细节和经典算法,而本文将系统的讲解一下垃圾回收的经典算法,和Hotspot虚拟机执行垃圾回收的一些实现细节,比如安全点 ...