二、部署在本地服务器

在上次的学习过程中,我们主要进行了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中执行

  1. use admin
  2.  
  3. 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:数据库介绍与基础操作的更多相关文章

  1. python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查

    python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...

  2. MySQL 数据库中的基础操作

    数据库中的表操作 1.创建表 表的表名命名规则: -- 数据库表命名规则重要说明: -- (1)数据库表名称可以支持大写字母A-Z,小写字母a-z,数字0-9,字符包括下划线 _ ,可以组合使用; - ...

  3. 二十三、MongoDb 数据库介绍、安装、启动和连接(非关系型数据库)

    1.数据库和文件的主要区别 1. 数据库有数据库表.行和列的概念,让我们存储操作数据更方便2. 数据库提供了非常方便的接口,可以让 nodejs.php java .net 很方便的实现增加修改删除功 ...

  4. MongoDb 学习笔记(一) --- MongoDb 数据库介绍、安装、使用

    1.数据库和文件的主要区别 . 数据库有数据库表.行和列的概念,让我们存储操作数据更方便 . 数据库提供了非常方便的接口,可以让 nodejs.php java .net 很方便的实现增加修改删除功能 ...

  5. ORM基础之ORM介绍和基础操作

    一.ORM介绍 1.ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过 ...

  6. mongodb数据库安装及常见操作

    客户端和服务端的安装 # rpm -ivh mongo-10gen-2.4.6-mongodb_1.x86_64.rpm mongo-10gen-server-2.4.6-mongodb_1.x86_ ...

  7. mongodb 数据库中 的聚合操作

  8. PyCharm介绍与基础操作

    PyCharm是一种Python IDE(集成开发软件),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具. 1.1 PyCharm主界面 PyCharm包含4个主要区分,分别为菜单 ...

  9. Koa 操作 Mongodb 数据库

    node-mongodb-native的介绍 使用基于官方的 node-mongodb-native 驱动,封装一个更小.更快.更灵活的 DB 模块, 让我们用 nodejs 操作 Mongodb 数 ...

随机推荐

  1. SDL 开发实战(二):SDL 2.0 核心 API 解析

    在上一篇文章 SDL 开发实战(一):SDL介绍及开发环境配置 中,我们配置好了SDL的开发环境,并成功运行了SDL的Hello World 代码.但是可能大部分人还是读不太明白具体Hello Wol ...

  2. php 168任意代码执行漏洞之php的Complex (curly) syntax

    今天了解了php 168的任意代码执行漏洞,Poc: http://192.168.6.128/pentest/cms/php168/member/post.php?only=1&showHt ...

  3. 机器学习 GBDT+xgboost 决策树提升

    目录 xgboost CART(Classify and Regression Tree) GBDT(Gradient Boosting Desicion Tree) GB思想(Gradient Bo ...

  4. 使用npm安装配置vue

    npm安装很慢(国外服务器),所以一般推荐使用npm淘宝镜像cnpm,先安装下cnpm: npm install -g cnpm --registry=https://registry.npm.tao ...

  5. Docker 删除所有无名称的镜像(悬空镜像)

    我们在build镜像的过程中,可能会产生一些临时的不具有名称也没有作用的镜像他们的名称一般都是<none>,我们可以执行下面的命令将其清除掉: docker rmi $(docker im ...

  6. APK安装成功后点击"打开",按Home键,在桌面点击图标后应用重启

    转载:http://blog.csdn.net/kepoon/article/details/7468688 问题: 安装系统SD卡里面的apk或者原有的程序更新版本的时候,会遇到升级安装成功之后的一 ...

  7. 小技巧,把Markdown文本发布到微信公众号文章

    估计很多人都是这样,平常工作在github,等到有成果要发布,又要写微信公众号. github用Markdown,微信公众号,至少截止今天,还是沿用富文本的方式.不是说富文本不好,但每次精心撰写的内容 ...

  8. golang slice 使用及源码分析

    1.先做个小实验 func main(){ s1:=make([]int,0,10) s1=[]int{1,2,3} ss:=make([]int,0,10) ss = s1[1:] for i:=0 ...

  9. 你真的会PHP吗?

    Note: 1) PHP中的数据类型 PHP一共支持八种数据类型, 4种标量类型,boolean(布尔型),integer(整形),float/double(浮点型)和string(字符串类型), 2 ...

  10. 解决Mysql错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)

    需要重启服务器:sudo /etc/init.d/mysql restart