MongoDB安装与使用

news2024/12/24 8:44:12

目录

一、MongoDB介绍与安装

什么是MongoDB

为什么要用MongoDB

MongoDB下载

MongoDB安装完成

二、MongoDB Compass

MongoDB Compass使用

三、使用mongoose连接数据库

使用MongoDB Compass 创建数据库

使用mongoose 连接数据库

每日一课:MongoDB 常用命令


一、MongoDB介绍与安装

什么是MongoDB

  • 来自于英文单词“Humongous”,中文含义表示“庞大”

  • 面向文档存储的开源数据库

  • 由C++编写,支持多种语言连接

为什么要用MongoDB

  • 性能好(内存计算)

  • 大规模数据存储(可拓展性)

  • 可靠安全(本地复制、自动故障转移)

  • 方便存储复杂数据结构(Schema Free)

MongoDB下载

可以在MongoDB官网[https://www.mongodb.com/zh-cn]下载,支持常见平台(Windows、Linux、OSX)

下载地址:https://www.mongodb.com/try/download/community

MongoDB Compass 后续单独安装:

因为直接安装,有可能会导致卡死【MongoD8 Compass,需要翻墙才能安装】

MongoDB安装完成

  • 配置环境变量

  • 相关命令

    • mongod -version // 查看一下mongodb的版本号

Windows下MongoDB配置环境变量

第一步:右键打开 “此电脑”,点击属性,即可显示系统设置 --> 然后点击高级系统设置,即可显示环境设置面板。

第二步:进入高级系统设置 --> 进入环境变量 --> 打开Path , 在系统变量里面找到变量名为Path双击进入

第三步:新建环境变量: 在变量值的结尾处加入 D:\mongodb\bin\ (根据具体自己电脑位置配置),保存退出,即可!

第四步:重启终端测试

二、MongoDB Compass

在使用MongoDB过程中,如果单单依靠命令行操作MongoDB数据库,效率不高而且查看不方便。

因此MongoDB官网提供的一个可视化管理工具,叫MongoDB Compass,它集创建数据库、管理集合和文档、运行临时查询、评估和优化查询、性能图表、构建地理查询等功能为一体,很方便。

下载地址:https://www.mongodb.com/products/compass

选择对应版本进行下载:

MongoDB Compass使用

连接MongoDB Server

如果本地安装MongoDB的时候没有设置账号和密码,直接点击Connect,使用默认连接,就可以登录本地的MongoDB。

如果设置了账号和密码,又或者你想连接到远程MongoDB,点击Advanced Connection Options,进入需要的选项面板进行连接配置。

MongoDB Compass主界面

 创建数据库

提示:Compass创建数据库,必须同时创建一个集合,所以上图也输入了一个集合名。

操作数据表(集合操作)

主要包含:新建数据,修改数据,删除数据,导入数据,导出数据表等

 查询数据

三、使用mongoose连接数据库

假设您已经利用koa脚手架创建了项目

如果想清楚了解如何使用koa脚手架创建了项目,请查看:这篇文章。

使用MongoDB Compass 创建数据库

查看结果

使用mongoose 连接数据库

mongoose 介绍

mongoose是nodeJS提供连接 mongodb的一个库。

此外还有mongoskin, mongodb(mongodb官方出品)。

还是比较青睐mongoose的, 因为他遵循的是一种, 模板式方法, 能够对你输入的数据进行自动处理。

有兴趣的同学可以去Mongoose官网看看.

Mongoose官方文档

  • mongoose - Version 6.1.2 【https://mongoosejs.com/】

  • mongoose - Version 5.0.15 中文版本 【http://www.mongoosejs.net/】

安装 mongoose

使用mongoose你需要有 nodeJS和mongodb数据库,下载mongoose:

npm install mongoose --save

项目中,新建db文件夹,并且新建index.js文件,用于连接数据库。

server\db\index.js

const mongoose = require('mongoose');

module.exports = ()=>{
    mongoose.connect('mongodb://localhost:27017/adminPublish',{
        useUnifiedTopology: true,
        useNewUrlParser: true
    })
    .then(()=>{
        console.log('数据库连接成功')
    }).catch(err=>{
        console.error('数据库连接失败',err)
    })
}

app.js入口文件,引入数据库连接,并启动数据库连接。

// app.js
... 
const MongoConnect = require('./db/index') // 引入文件 

MongoConnect() // 链接数据库
...

具体如下:


每日一课:MongoDB 常用命令

  • mongo:启动 MongoDB 客户端。

  • show dbs:显示所有数据库。

  • show collections:显示选定数据库中的所有集合

  • use <db_name>:使用指定的数据库。

  • db.<collection_name>.find():在指定的集合中查找所有文档。

  • db.<collection_name>.findOne(<query>):在指定的集合中查找一个文档。

  • db.<collection_name>.insert(<document>):在指定的集合中插入一个文档。

  • db.<collection_name>.insertOne(<document>):在指定的集合中插入一个文档。

  • db.<collection_name>.update(<query>, <update>):在指定的集合中更新一个或多个文档。

  • db.<collection_name>.updateOne(<query>, <update>):在指定的集合中更新一个或多个文档。

  • db.<collection_name>.remove(<query>):在指定的集合中删除一个或多个文档。

  • db.<collection_name>.deleteOne():删除指定的文档

  • db.<collection_name>.aggregate():在集合上执行聚合操作

这些命令只是 MongoDB 命令中的一小部分,它们是使用 MongoDB 的基本命令。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/622728.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue项目打包dist目录介绍

如下 CSS目录&#xff1a; ① .css文件是项目要用到的css文件,当你做webpack打包的时候&#xff0c;会把所有的css样式打包到这里 ② .css.map文件是一个Source map文件&#xff0c;Source map就是一个信息文件&#xff0c;里面储存着位置信息。也就是说&#xff0c;转换后的代…

ChatGPT扩展系列之使用pandora本地搭建ChatGPT

ChatGPT扩展系列之使用pandora本地搭建ChatGPT 1. 为什么要本地搭建 主要解决使用上的几个痛点,我们可以看一下下面就是我们最常遇到的几个问题,这里我们重点提一下就是我们本地搭建好了之后,我们获取Access Token,这个Token的有效期长达14天,也就是这14天中,我们都不需…

【沐风老师】3DMAX径向对称插件使用方法应解

3DMAX径向对称插件使用教程 3DMAX径向对称插件&#xff0c;允许你对径向结构建模并查看最终结果。它的功能类似于3dMax自带的“对称”修改器&#xff0c;但它可以在三个轴的任意角度径向对象&#xff0c;这可以创造出很多我们意想不到的建模艺术效果&#xff0c;也可以理解它是…

【前端 - HTML】第 6 课 - 表单标签

欢迎来到博主 Apeiron 的博客&#xff0c;祝您旅程愉快 &#xff01; 时止则止&#xff0c;时行则行。动静不失其时&#xff0c;其道光明。 目录 1、缘起 2、表单标签 2.1、input 标签基本使用 2.2、input 标签占位文本 2.3、单选框 radio 2.4、上传文件 2.5、多选框 …

Vue.js中的动态组件和异步组件

Vue.js中的动态组件和异步组件 在Vue.js中&#xff0c;动态组件和异步组件是两个常用的技术&#xff0c;用于处理动态加载和渲染组件的需求。虽然它们都可以实现动态加载和渲染组件的功能&#xff0c;但它们的实现方式和使用方法有所不同。本文将详细介绍Vue.js中的动态组件和…

短视频账号矩阵系统技术开发难度之.框架底层逻辑

申请流程&#xff1a;注册官方开放平台账号----申请服务商-----关联应用----申请权限-----等待审核通过 接入开发------开发功能列表&#xff1a; 数据归纳箱&#xff08;账号数据对比概览内含视频总数、播放总数、点赞总数、分享总数、粉丝总数数据统计概览统计&#xff09;…

CMU15-445 2022 Fall 通关记录 —— Project 0

Project 0 Project #0 - C Primer | CMU 15-445/645 :: Intro to Database Systems (Fall 2022) — 项目 #0 - C 入门 | CMU 15-445/645 :: 数据库系统简介&#xff08;2022 年秋季&#xff09; 前期准备 为完成该项目做的一些准备&#xff1a; 创建个人项目FarewellYi/BusT…

【半监督医学图像分割 2023 CVPR】BCP

【半监督医学图像分割 2023 CVPR】BCP 论文题目&#xff1a;Bidirectional Copy-Paste for Semi-Supervised Medical Image Segmentation 中文题目&#xff1a;双向复制粘贴半监督医学图像分割 论文链接&#xff1a;https://arxiv.org/abs/2305.00673 论文代码&#xff1a;http…

EXCEL和VBA里的通配符和转义符

1 EXCEL里的通配符 1.1 EXCEL里常见通配符 通配符必须是英文半角的&#xff0c;中文输入下的不行&#xff01;* 可代表任意数量的字符&#xff1f; 可代表任一个的字符 1.2 使用举例 EXCEL的查找框&#xff0c;也可以使用 通配符只有部分内置函数可…

如何做架构设计?

也许您对软件设计存在一些疑惑&#xff0c;或者缺乏明确思路&#xff0c;那么本文将非常适合您。 1、设计很重要 我们可以看一下周边的事物&#xff0c;那些好的东西&#xff0c;他们并不会天然存在&#xff0c;都是被设计出来的&#xff0c;因此设计就是创造和改善事物的重要…

JavaSE03_流程控制语句

JavaSE-03 [流程控制语句] 第一章 流程控制 1.1 流程概述 在一个程序执行的过程中&#xff0c;每条语句的执行顺序对程序的结果是由直接影响的&#xff0c;也就是&#xff0c;语句的流程对运行结果有着直接的影响&#xff0c;所以&#xff0c;必须清楚知道每条语句的执行流程…

【Python】Python系列教程-- Python3 命名空间和作用域(二十九)

文章目录 前言作用域全局变量和局部变量global 和 nonlocal关键字 前言 往期回顾&#xff1a; Python系列教程–Python3介绍&#xff08;一&#xff09;Python系列教程–Python3 环境搭建&#xff08;二&#xff09;Python系列教程–Python3 VScode&#xff08;三&#xff09…

Vue.js 中的 v-bind 和 v-on 简写

Vue.js 中的 v-bind 和 v-on 简写 在 Vue.js 中&#xff0c;v-bind 和 v-on 是两个常用的指令&#xff0c;用于绑定属性和事件。在本文中&#xff0c;我们将介绍 v-bind 和 v-on 的简写形式&#xff0c;以及如何使用它们。 v-bind 简写形式 在 Vue.js 中&#xff0c;v-bind 用…

Java 进阶—死锁造成原因及其解决

今天我们来了解一下线程死锁&#xff0c;死锁很好理解&#xff0c;从字面上来看就是锁死了&#xff0c;解不开&#xff0c;在大街上看到一对卧龙凤雏的情侣&#xff0c;怎么说&#xff0c;你们给我锁死&#xff0c;不要分开去霍霍别人 之前我们不是说过&#xff0c;解决线程安…

GoogleTest之创建Mock

目录 MOCK_METHODmock方法的访问属性mock非虚函数mock自由函数Nice/Strict/Naggymock方法简化参数mock具体类的替代方法代理给fake mock是用来模拟对象&#xff0c;隔离边界的一种测试方法&#xff0c;以便在开发阶段不需要依赖第三方或其他依赖项可以进行独立的测试。 MOCK_ME…

MySQL调优系列(六)——查询优化

一、查询慢的原因 查询速率受网络、CPU、IO、上下文切换、系统调用、生成统计信息、锁等待时间等因素影响。 举个常见面试题&#xff1a; 一个表非常非常大&#xff0c;上亿级别的数据&#xff0c;性能会变慢嘛&#xff1f;如果表有索引 答&#xff1a;增删改会变慢。&#xf…

Python可视化分析项目高分课设

今天给大家分享一个基于python的django框架结合爬虫以及数据可视化和数据库的项目&#xff0c;该项目总体来说还是挺不错的&#xff0c;下面针对这个项目做具体介绍。 1&#xff1a;项目涉及技术&#xff1a; 项目后端语言&#xff1a;python 项目页面布局展现&#xff1a;前…

数据结构--队列

文章目录 队列基础队列的实现链表实现环形数组实现tail一直加的问题容量处理 队列的使用 队列基础 queue 是以顺序的方式维护的一组数据集合 相对于链表来说&#xff0c;队列操作数据的位置是固定的只能2端操作。 在一端添加数据&#xff0c;从另一端移除数据。习惯来说&#…

高完整性系统(3):Threat Modelling

文章目录 基础安全性质保密性&#xff08;Confidentiality&#xff09;完整性&#xff08;Integrity&#xff09;可用性&#xff08;Availability&#xff09;认证&#xff08;Authentication&#xff09;不可抵赖性&#xff08;Non-repudiation&#xff09;访问控制&#xff0…

从开源软件看动态内存分配

动态内存分配 我们通常在C里面动态分配内存&#xff0c;会写出下面这样的代码&#xff1a; struct header {size_t len;unsigned char *data; }; 随后为data malloc一段内存出来&#xff0c;那么还有其他办法吗&#xff1f; 那便是弹性数组&#xff01;在阐述本节之前&#xff…