初探react中使用MongoDB

news2024/11/24 23:07:56

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

MongoD8 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脚手架创建了项目,请查看:浅谈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/635573.html

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

相关文章

Cracking C++(9): 编译选项的设置

文章目录 1. 目的2. 生成 hello 可执行程序的过程3. 编译选项4. overlook 项目简介4.1 基本用法4.2 典型例子&#xff1a; 函数缺少返回值 1. 目的 对应到 hackingcpp 网站上 Hello World 这一节内容的笔记和个人的拓展。 2. 生成 hello 可执行程序的过程 #include <iost…

牛客网专项练习——C语言错题集(3)

文章目录 函数的缺省返回值类型找不同数组指针 函数指针const 与 指针函数里操作外面传进来的数组 函数的缺省返回值类型 “在C语言中&#xff0c;凡不加返回值类型限定的函数&#xff0c;就会被编译器作为返回整型值处理。” 这是初学学 C 语言时有接触到的一个概念&#xf…

RK3588平台开发系列讲解(进程篇)进程task_struct结构体详解(一)

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、任务 ID二、信号处理三、任务状态四、进程调度沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 Linux 里面,无论是进程,还是线程,到了内核里面,我们统一都叫任务(Task),由一个统一的结构 task_stru…

1.uniapp可视化操作-diygw

DAY1-uniapp可视化操作:DIY可视化-拖拽设计1天搞定主流小程序环境安装 文章目录 DAY1-uniapp可视化操作:DIY可视化-拖拽设计1天搞定主流小程序环境安装前言一、DIY可视化桌面客户端安装:二、小皮管理面板phpstudy(或者宝塔桌面)三、phpstorm开发工具:四、Vs Code安装:五、hbuil…

《Java Web轻量级整合开发入门》学习笔记

轻量级Java Web整合开发 第一章 轻量级Java Web开发概述 1.2 java web 开发概述 1.JSP是一种编译执行的前台页面技术。对于每个JSP页面&#xff0c;Web服务器都会生成一个相应的Java文件&#xff0c;然后再编译该Java文件&#xff0c;生成相应的Class类型文件。在客户端访问到…

chatgpt赋能python:Python怎么合并字典

Python怎么合并字典 在Python编程中&#xff0c;字典是一种非常有用的数据结构。它由一组键值对组成&#xff0c;每个键值对都是一个键和对应的值。有时候&#xff0c;我们需要将两个或多个字典合并为一个大的字典。本文将介绍Python中合并字典的方法。 方法一&#xff1a;使…

[架构之路-212]- 需求- UML需求建模:用例图、ER图/概念类图、流程图、序列图、状态机图

目录 前言&#xff1a; 什么是需求建模 1. 用例图 1.1 用例图 1.1.1 组件 1.1.2 用例细化与用例关系 1.2 用例规约 2. ER图/概念类图 3. 跨角色流程图&#xff08;串行、协同&#xff09; 4. 活动图&#xff08;并行、协同&#xff09; 5. 状态机图 6. 时序图 前言…

Letcode经典黄题——三数之和

还是那句话&#xff0c;一个题思路很重要&#xff0c;没有思路等于无头苍蝇乱撞 题目要求&#xff1a;给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 …

chatgpt赋能python:Python怎么变黑?探索Python黑科技的奥秘

Python怎么变黑&#xff1f;探索Python黑科技的奥秘 如果你在网上搜索“Python怎么变黑”&#xff0c;你会看到很多关于Python黑客技术的讨论。但是&#xff0c;这篇文章将会聚焦于Python如何变得更“黑”&#xff0c;即在SEO优化方面如何利用Python。 Python在SEO优化中的作…

华硕天选4原装Windows11系统带ASUSRECOVERY恢复工厂模式安装

华硕工厂恢复系统 &#xff0c;安装结束后带隐藏分区以及机器所有驱动软件,奥创Myasus Recovery 文件地址https://pan.baidu.com/s/1Pq09oDzmFI6hXVdf8Vqjqw?pwd3fs8 提取码:3fs8 文件格式&#xff1a;5个底包(HDI KIT COM MCAFEE EDN) 1个引导工具TLK 支持ASUSRECOVERY型…

chatgpt赋能python:Python和Envi:完美结合的最佳方案

Python和Envi&#xff1a;完美结合的最佳方案 如果你正在寻找一种可靠的方法来将Python编程与Envi软件结合起来&#xff0c;那么你来对地方了&#xff01;在本篇文章中&#xff0c;我们将介绍如何使用Python编程语言和Envi软件相互结合&#xff0c;从而让你的数据分析和地理信…

价值8k的电子书小程序源码+前端(含教程)

&#x1f388; 限时活动领体验会员&#xff1a;可下载程序网创项目短视频素材 &#x1f388; &#x1f389; 有需要的朋友记得关赞评&#xff0c;阅读文章底部来交流&#xff01;&#xff01;&#xff01; &#x1f389; ✨ 源码介绍 价值8k的电子书小程序源码_附完整教程 无意…

chatgpt赋能python:Python的字符串处理功能:取出字符串的每一位

Python的字符串处理功能&#xff1a;取出字符串的每一位 Python是广泛应用于Web开发、数据分析、机器学习、人工智能和爬虫等领域的一门程序语言。其中&#xff0c;字符串是Python最常见的数据类型之一&#xff0c;也是Web开发中交互数据的主要形式。在Python中&#xff0c;字…

UDS关于0x34服务请求下载学习

1.服务介绍 客户端使用requestDownload服务启动从客户端到服务器的数据传输&#xff08;下载&#xff09;。在服务器收到requestDownload请求消息后&#xff0c;服务器应采取一切必要措施接收数据&#xff0c;然后再发送肯定响应消息。 2.请求消息 2.1请求消息定义 C1&#x…

javaSE -- 注解学习笔记

参考资料&#xff1a;https://blog.csdn.net/KingBoyWorld/article/details/105337011 https://blog.csdn.net/qq_42843172/article/details/107293408 1.注解是什么&#xff1f; java注解是一个写在接口、类、属性方法上的一个标签。跟注释不同&#xff0c;能够影响代码。 …

算法模板(5):数学(1):数学知识(1)

数论 整数的整除性 [x]表示不超过x的最大整数&#xff0c;叫做取整函数或高斯函数。设整数a&#xff0c;b不同时为零&#xff0c;则存在一对整数m&#xff0c;n&#xff0c;使得 ( a , b ) a m b n (a, b) am bn (a,b)ambn。注&#xff1a;a和b的最大公因数会写成 (a, b)…

vue3中使用Vuex

目录 什么是Vuex安装和配置Vuex安装Vuex配置Vuex 使用VuexState定义State访问State MutationsMutations 的特点定义Mutations触发Mutations 修改State中的状态 ActionAction 的特点和作用定义Action触发Action GetterGetter 的特点和作用定义Getter获取Getter ModuleModule 的特…

ARM基础(4):L1 Cache之I-Cache和D-cache详解

在上一篇文章ARM基础(3)&#xff1a;MPU内存保护单元详解及例子中&#xff0c;我介绍了MPU&#xff0c;我们知道MPU允许按区域修改一级Cache的属性&#xff0c;这个Cache一般为L1 Cache&#xff0c;它位于CPU的内部&#xff0c;用来加快指令和数据的访问速度。同时&#xff0c;…

chatgpt赋能python:如何在Python和Java之间进行整合

如何在Python和Java之间进行整合 在现在这个编程的时代里&#xff0c;使用一种编程语言或一种技术通常不能满足所有的需求。因此&#xff0c;当你需要在Python和Java之间进行整合时&#xff0c;这篇文章就为你介绍了一些解决方案。 为什么需要Python和Java进行整合 Python和…

redis 字典的实现

1.数据结构 节点数据结构 因为是基于开链法的哈希表实现&#xff0c;所以需要维护了一个next节点 typedef struct dictEntry {void *key;union {void *val;uint64_t u64;int64_t s64;double d;} v;struct dictEntry *next; } dictEntry; 复制 哈希表数据结构 其中size是当…