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 数 ...
随机推荐
- 养成这8个编程习惯,你的Python性能将蹭蹭蹭地往上涨
Python不以性能见长,但掌握一些技巧,也可尽量提高程序性能,避免不必要的资源浪费. 1. 使用局部变量 尽量使用局部变量代替全局变量:便于维护,提高性能并节省内存. 使用局部变量替换模块名字空间中 ...
- JNI实战(一):JNI HelloWorld
使用最新Android Studio的Cmake,创建一个Native C++项目后,我们就可以看到JNI的Hello World的项目及示例代码了. JNI的项目代码,分为三层:Java层,C++层 ...
- 大量示例彻底搞懂Linux查找,which,whereis,locate,find
前言 Linux常用命令中,有些命令可以帮助我们查找二进制文件,帮助手册或源文件的位置,也有的命令可以帮助我们查找磁盘上的任意文件,今天我们就来看看这些命令如何使用. which which命令会在P ...
- [Swift]LeetCode12. 整数转罗马数字 | Integer to Roman
Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol Value I 1 ...
- [Swift]LeetCode18. 四数之和 | 4Sum
Given an array nums of n integers and an integer target, are there elements a, b, c, and d in nums s ...
- 9.Django form组件
Form组件 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 创建Form类时,主要涉及到 [ ...
- Linux(2)---记录一次线上服务 CPU 100%的排查过程
Linux(2)---记录一次线上服务 CPU 100%的排查过程 当时产生CPU飙升接近100%的原因是因为项目中的websocket时时断开又重连导致CPU飙升接近100% .如何排查的呢 是通过 ...
- 带着新人学springboot的应用07(springboot+RabbitMQ 下)
说一两句废话,强烈推荐各位小伙伴空闲时候也可以写写自己的博客!不管水平高低,不管写的怎么样,不要觉得写不好或者水平不够就不写了(咳,我以前就是这样的想法...自我反省!). 但是开始写博客之后,你会发 ...
- Kafka监控系统Kafka Eagle剖析
1.概述 最近有同学留言反馈了使用Kafka监控工具Kafka Eagle的一些问题,这里笔者特意整理了这些问题.并且希望通过这篇博客来解答这些同学的在使用Kafka Eagle的时候遇到的一些困惑, ...
- SQL语句查询表结构
SQL语句查询表结构 刚刚在做一个小项目,数据库中一张表有20来个字段,用我以前做的一个.NET实体类生成器一个一个的输入还是闲麻烦,于是打算找个时间来重新的改造一个那个.NET实体类,能够通过选 ...