前端程序猿学习mongoDB之旅(一)

SpringBoot学习6之Logback日志导入mongodb SpringBoot学习6之Logback日志导入mongodb 微信公众号" IT程序猿进化史", 共同学习进化~ 正如前文所说,springboot自带logback作为其日志新系统,但是在实际工作中,我们常常需要对日志进行管理或分析,如果只是单纯的将日志导入文本文件,则在查询时操作过于繁琐,如果将其导入mysql等关系型数据库进行存储,又太影响系统性能,同时由于Mysql其结构化... 阅读详情

作为一名前端程序猿,怎么可以不学习mongoDB,BSON(binary json)始于JSON,nodejs+mongodb的搭配让前端涉猎后台项目更加得心应手。话不多说,开整!

一、数据库的安装

下载: 官网下载地址
在这里插入图片描述
下载最新版本,几乎是傻瓜安装
注意:这一步取消选中,不然会下载MongoDB Compass (一个图形界面管理工具),安装时间将大大增加。在这里插入图片描述
如果安装的不是系统盘,还需要配置环境变量
mongodb配置环境变量

二、mongoDB简介

  • 旨在为WEB应用提供可扩展的、高性能的数据存储方案
  • 数据存储结构有key 、value组成,类似JSON
  • 属于NoSql(not only sql),非关系型数据库、分布式计算
  • 国外很多大厂使用:facebook google mozilia so on…

三、可视化管理工具

可视化管理工具太多了。例如Database Master、Fang of Mongo、Mongo3、studio 3t…自行选择,用习惯了哪个都行,我是大佬带我用的studiio 3t,界面简洁very nice。
可视化工具studio3T展示效果如下:

  • tree ivew
    在这里插入图片描述

  • table view
    在这里插入图片描述

  • json view

四、启动数据库与命令行操作

  • mongod

mongod 命令可来启用数据库服务,即搭建并开启服务器,可以通过默认端口27017被访问( http://localhos:27017/)

mongod是处理MongoDB系统的主要进程。它处理数据请求,管理数据存储,和执行后台管理操作。

配置数据库文件的存储位置,如果不配置双击安装目录bin下的mongod.exe ,会闪退

mongod -dbpath "D:\mongodatabase\data"//安装时配置的 data存放路径

  • mongo

双击安装目录bin下的mongo.exe 即启动mongodb shell客户端(一个互动的JavaScript接口的MongoDB,可以使用MongoShell来查询和更新数据以及执行管理操作)

更多操作方法 mongodb shell操作

五、基础概念学习

基本概念:数据库 集合 文档
盗个图mongodb和sql的对应关系
在这里插入图片描述

六、基本CURD API

创建(Create)、更新(Update)、读取(Retrieve)和删除(Delete)

1、数据库操作

  • 连接数据库
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
  • 创建数据库
use DATABASE_NAME
  • 删除数据库
db.dropDatabase()

2、集合操作

  • 创建集合
db.createCollection(name, options)
  • 删除集合
db.collection.drop()

3、文档操作

  • 插入文档
db.COLLECTION_NAME.insert(document)
db.COLLECTION_NAME.save(document)
db.collection.insertOne()
db.collection.replaceOne()
db.collection.insertMany():
  • 更新文档
db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)
db.collection.save(
   <document>,
   {
     writeConcern: <document>
   }
)
  • 删除文档
db.collection.remove(
   <query>,
   <justOne>
)
//remove() 方法 并不会真正释放空间。repairDatabase方法来回收磁盘空间
db.repairDatabase()

db.inventory.deleteMany({})
db.inventory.deleteOne( { status: "D" } )
  • 查询文档
db.collection.find(query, projection)
// and 查询
db.col.find({key1:value1, key2:value2}).pretty()
//or查询
db.col.find(
   {
      $or: [
         {key1: value1}, {key2:value2}
      ]
   }
).pretty()
文档原子操作(基本操作)
  • $set 用来指定一个键并更新键值,若键不存在并创建。
  • $unset 用来删除一个键。
  • $inc 可以对文档的某个值为数字型(只能为满足要求的数字)的键进行增减的操作
  • $push $pushAll把value追加到field里面去,
  • $pull 从数组field内删除一个等于value值。
  • $addToSet增加一个值到数组内,而且只有当这个值不在数组内才增加。
  • $pop删除数组的第一个或最后一个元素
  • $rename 修改字段名称
  • $bit 位操作,integer类型

七、操作符和基础方法

  • $gt 大于
  • $lt 小于
  • $gte 大于等于
  • $lte 小于等于

例: 查找col集合 num域 小于200大于100的数据

db.col.find({num : {$lt :200, $gt : 100}})
  • $type 匹配某种数据类型的数据

例:查找col集合 title为string类型的数据

db.col.find({"title" : {$type : 'string'}})
  • limit() skip() 跳过与限定数量
    例:分页查询
db.col.find().limit(10).skip(10)
  • sort() 排序 1升序 -1降序

  • createIndex() 创建索引

  • aggregate()聚合 (用于处理数据诸如统计平均值,求和等)

八、进阶操作

  • 文档之间的关系 (嵌入式,引用式)
  • 不同集合之间的文档关联 DBRefs { $ref : , $id : , $db : }
  • 覆盖索引 (ensureIndex 存在于RAM,读取速度快)

高级索引:索引数组 、索引子文档

  • MapReduce计算模型

Map 函数调用 emit(key, value), 遍历 collection 中所有的记录, 将 key 与 value 传递给 Reduce 函数进行处理。

db.collection.mapReduce(
   function() {emit(key,value);},  //map 函数
   function(key,values) {return reduceFunction},   //reduce 函数
   {
      out: collection,
      query: document,
      sort: document,
      limit: number
   }
)
  • 全文检索

创建全文检索

db.col.ensureIndex({post_text:"text"})

使用全文索引

db.col.find({$text:{$search:"str"}})

  • 正则表达式

>db.col.find({post_text:{$regex:"regStr"}})

  • gridFS

添加文件

mongofiles.exe -d gridfs put song.mp3

查看文件中的文档

db.fs.files.find()

查看区块数据

db.fs.chunks.find({files_id:ObjectId('id')})

  • 固定集合(后插入的元素就会覆盖最初始的头部的元素)

db.createCollection("cappedLogCol",{capped:true,size:10000,max:1000})

九、运维操作

  • 复制迁移
  • 分片 (多台服务器分割数据)
  • 备份与恢复
  • 监控
  • 查看分析 explain() hint()

十、Mongoose

Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具

mongoose官网
简单理解
nodejs→express
mongo→mongoose

使用kettle采集并处理MongoDB数据库中的数据 本实验任务主要完成基于ubuntu环境的使用kettle采集并处理MongoDB数据库中的数据的工作。通过完成本实验任务,要求学生熟练掌握使用kettle采集并处理MongoDB数据库中的数据的方法,为后续实验的开展奠定ETL平台基础,也为从事大数据平台运维工程师、大数据技术支持工程师等岗位工作奠定夯实的技能基础。1、掌握使用kettle采集并处理MongoDB数据库中的数据Ubuntu16.04、Java1.8、Kettle7.1、MongoDB3.6.2Kettle 中文名称叫水壶,该项目的主程序员MA 阅读详情

相关推荐

零基础用AHK操作Excel:从数据读取到自动填写(附完整脚本解析)

本文为零基础用户详细介绍了如何使用AutoHotkey(AHK)通过COM接口高效操作Excel,实现从数据自动读取到填写的完整自动化流程。文章包含完整的脚本解析、环境搭建指南、核心代码逐行讲解以及实际应用案例,帮助办公人员大幅提升数据处理效率,告别重复劳动。

weixin_29202213的博客 553

大前端养成之路:学一点MongoDB(一)

NoSQL是指非关系型数据库,与传统的关系型数据库相对应。在NoSQL数据库中,数据是以键值对、文档、列族或图形等方式进行存储,而非传统的二维表格的形式。相比于传统的关系型数据库,NoSQL数据库具有更好的可扩展性、更好的性能和更高的灵活性。常见的NoSQL数据库有MongoDB、Cassandra、Redis、Couchbase等。我在百度上找了个图,形象地展现两个数据库的差异(如有侵权,请联系我删除)可以将传统数据库比喻为图书馆,每本书都有明确的编号、分类、位置等信息,检索和管理起来比较繁琐。

胡乱学点东西 659

OnlyOffice Docker部署实战:解除20连接限制+500M文件上传配置(附中文字体解决方案)

本文详细介绍了OnlyOffice企业级Docker部署的全过程,包括解除20并发连接限制、提升文件上传大小至500MB以及解决中文字体显示问题。通过定制镜像、优化配置和字体安装,帮助技术团队快速搭建高性能的文档协作平台,适用于企业级应用场景。

weixin_26850069的博客 443

【前端笔记】mongodb学习记录

mongodb学习记录MongoDB简介MongoDB下载安装过程数据库将MongoDB设置为系统服务MongoDB基本操作三个概念基本指令数据库的CRUD操作(增删改查)查询练习文档之间的关系sort和投影mongoose简介mongoose的好处新的对象mongoose使用Model的方法document的常用方法mongoose的模块化 MongoDB简介 1.MongoDB是为快速开发互联网web应用而设计的数据库系统 2.MongoDB的设计目标是极简,灵活,作为web应用栈的一部分 3.Mong

qq_43741689的博客 1884

通义千问语言模型Qwen2.5架构详解

此外,将基于API的模型 Qwen-Plus 与领先的专有和开源模型进行了对比,包括 GPT4-o、Claude-3.5-Sonnet、Llama-3.1-405B和DeepSeek-V2.5。Qwen2.5-Math-72B-Instruct的整体性能超越了Qwen2-Math-72B-Instruct和GPT4-o,甚至是非常小的专业模型如 Qwen2.5-Math-1.5B-Instruct也能在与大型语言模型的竞争中取得高度竞争力的表现。近来也出现了明显的转向小型语言模型(SLMs)的趋势。

搏博的专栏 1万+

stm32F103定时器使用方法

文章目录1、STM32的Timer简介2、普通定时器TIM2-TIM52.1 时钟来源2.2 计数器模式2.3 编程步骤3、程序源代码4、总结 1、STM32的Timer简介 STM32中一共有11个定时器,其中2个高级控制定时器,4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。其中系统嘀嗒定时器是前文中所描述的SysTick,看门狗定时器以后再详细研究。今天主要是研究剩下的8个定时器。 其中TIM1和TIM8是能够产生3对PWM互补输出的高级登时其,常用于三相电机的驱动,时钟

weixin_43582209的博客 4515

【前端】-【MongoDB基础】-学习笔记

例如:MySQL(轻量、免费)、Oracle(非常大、付费)、SQL Server(操作简单,教学比较多) 特点:关系紧密,都是表例如:MongoDB、Redis 特点:关系不紧密,有文档,有键值对MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。 打开一个新的命令行窗口,输入命令,就连接成功了 默认保存在 ,设置mong

weixin_40852935的博客 929

LabVIEW内存优化实战:用DVR和队列高效处理大型数组,告别数据副本

本文深入探讨LabVIEW内存优化技术,重点介绍数据值引用(DVR)和单元素队列(SEQs)在高效处理大型数组中的应用。通过对比传统方法与现代引用技术的性能差异,提供减少内存副本、提升程序效率的实战方案,帮助开发者在测试测量、图像处理等数据密集型场景中实现显著性能提升。

weixin_30835649的博客 1061

前端需掌握的MongoDB数据库

数据库概念 数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。 数据库介绍 存储数据的仓库,独立于语言之外的软件,可以通过api去操作它 生活中 通过仓库来存放物品,每个仓库有N个架子, 每个架子有N个物品 在程序中 通过数据库来存放数据, 每个数据库有N个表/集合,每个表/集合有N个数据/文档 数据库种类 关系型

qq_35254085的博客 534

C# 原生数字孪生的尝试

本文介绍了使用C#实现数字孪生的基本思路。首先从爱普生官网下载机器人3D模型,然后通过Blender创建并导出带动画的FBX模型。在WPF项目中,使用HelixToolkit.SharpDX等插件加载模型,通过Viewport3DX进行3D渲染。关键点是通过动画控制器接收真实设备信号来驱动模型动画,实现物理实体与虚拟模型的同步。文中提供了完整的代码实现,包括模型导入、动画播放控制等核心功能。该方法为构建数字孪生系统提供了一种可行的技术方案。

qq_33529095的博客 1330

【雕爷学编程】Arduino智能家居之DS18B20温度传感器

1、温度和湿度控制:通过连接温度传感器和湿度传感器,Arduino可以实时监测室内环境的温度和湿度,并通过控制空调、加热器或加湿器等执行器,实现室内温湿度的自动调节。设计用户友好的界面和操作方式,提供简单直观的控制和反馈机制,以及考虑用户习惯和需求,能够提升系统的整体用户体验。这意味着用户可以根据自己的需求和创意,自定义和定制智能家居系统的功能和外观。5、能源管理:Arduino可以与电能监测模块和智能插座等设备结合使用,实时监测家庭能源的使用情况,并通过自动控制电器设备的开关,实现能源的有效管理和节约。

雕爷学编程 2873

大前端养成之路:学一点MongoDB(二)

MongoDB数据建模是使用MongoDB进行数据存储和管理的重要环节。下面将分为三部分,分别是数据建模基础知识、MongoDB数据建模原则以及数据建模案例实战。同时,还将使用node.js技术栈实现相关代码案例,以便更好地理解MongoDB数据建模的过程。

胡乱学点东西 692

基于STC8G1K08A单片机的EC11旋转编码器控制(江科大同款,代码可直接使用)

本文介绍了STC8G系列单片机与EC11旋转编码器的接口实现方案。硬件方面详细说明了EC11编码器的机械结构、电气特性及与单片机的典型连接电路,包括上拉电阻和消抖设计。软件部分重点阐述了状态检测算法,通过状态机和查找表实现方向判断,采用中断方式检测信号变化,并配合定时器进行软件消抖处理。文章还提供了完整的代码实现,包括GPIO初始化、中断服务函数、状态转换逻辑等关键模块,展示了如何通过串口输出验证旋转计数。最后讨论了抗抖动优化、高低速应用场景等实际问题解决方案。该方案在菜单导航、参数调节等场景中具有实用价值

weixin_74013772的博客 322

猫抓浏览器资源嗅探扩展:网页视频捕获与 M3U8 解析,免费、完整、上手快

在线课程播到一半想存下来,右键菜单却只有"另存为"和一堆无用的选项?这正是猫抓(cat-catch)这类浏览器资源嗅探扩展的用武之地:网页视频捕获只需点一下工具栏图标,M3U8 流媒体解析也能自动完成,全程免费开源。 ## 初印象:猫抓到底帮你解决什么 一句话概括:猫抓是一个开源的浏览器扩展,它会筛选并列出当前页面正在请求的媒体资源,帮你把能存的内容存下来。 它瞄准的其实是三类很具体的困扰:

gitblog_00248的博客 607

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

各种学习网址总结-程序猿值得拥有 持更

1、有关python等一些文档的爱好者写的中文翻译: 一译 https://yiyibooks.cn/ 2、pyecharts官网 pyecharts https://pyecharts.org/#/zh-cn/quickstart 3、Tableau中文手册 http://www.dba.cn/book/tableau/ 4、程序员想要学习的各种编程学习路线 https://ww...

reb0rn 680

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

开发中MongoDB遇到的各种问题

开发中MongoDB遇到的各种问题

忆~遂愿的博客 1621

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Python连接MongoDB

本文将介绍Python如何连接MongoDB!(默认已提前完成MongoDB的安装配置)

一只程序猿子的博客 1722

MongoDB的安装与配置(简单版本、Win7)

大家好,我是邵奈一,一个不务正业的程序猿、正儿八经的斜杠青年。 1、世人称我为:被代码耽误的诗人、没天赋的书法家、五音不全的歌手、专业跑龙套演员、不合格的运动员… 2、这几年,我整理了很多IT技术相关的教程给大家,爱生活、爱分享。 3、如果您觉得文章有用,请收藏,转发,评论,并关注我,谢谢! 博客导航跳转(请收藏):邵奈一的技术博客导航 | 公众号 | 微信 | 优快云 | 掘金 | 51CTO | 简书 | 微博 | 教程目录0x00 教程内容0x01 下载与解压1. 下载2. 解压0x02 配.

邵奈一的博客 3108

mac 下用 brew 安装mongodb(2)

由于篇幅限制,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!点击【学习资料】即可领取!77)即可领取![外链图片转存中…(img-4U6hEhDH-1712465204429)][外链图片转存中…(img-bB6HRJ42-1712465204430)]

2401_84091628的博客 278

【Mongodb数据库】的介绍和安装(windows下和ubuntu16

Mongodb是一个功能最丰富的NoSQL非关系型数据库,由C++语言编写,是一个基于分布式文件存储的开源数据库系统,旨在为WEB应用提供可扩展的高性能数据存储解决方案。其内容存储形式类似JSON对象,它的字段值可以包含其他文档,数组及文档数组,非常灵活!name:"孤寒者",age:18,address: {city:"河南", country:"china"}Mongodb既可用于S端存储数据,即server;也可供C端操作处理(如查询等)数据,即client。

2401_87555477的博客 1185

【Mongodb数据库】的介绍和安装(windows下和ubuntu16(1)

Mongodb是一个功能最丰富的NoSQL非关系型数据库,由C++语言编写,是一个基于分布式文件存储的开源数据库系统,旨在为WEB应用提供可扩展的高性能数据存储解决方案。其内容存储形式类似JSON对象,它的字段值可以包含其他文档,数组及文档数组,非常灵活!name:"孤寒者",age:18,address: {city:"河南", country:"china"}Mongodb既可用于S端存储数据,即server;也可供C端操作处理(如查询等)数据,即client。

2401_84185951的博客 1021

MongoDB高级查询用法大全 - 程序猿_哲

转载 http://blog.163.com/lgh_2002/blog/static/440175262012052116455/ 详见官方的手册:  http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-ConditionalOperators%3A%3C%2C%3C%3D%2C%3E%2C%3E%

real_lizy的专栏 1398

Mac环境下安装mongodb

Mac环境下安装mongodb作为一枚前端程序猿,最近一段时间在自学node.js,在网上看的教程大多都是用mongodb(详见:https://www.mongodb.com),所以记录下mongodb的安装与配置,这里我在mac环境下搭建.主要有两种方式,一种是直接下载压缩包解压: 当前版本的下载地址:http://downloads.mongodb.org/osx/mongodb-osx-x

小蚁的博客 3783

程序猿:论学习方式的重要性

大家都知道,做我们开发这行的,最核心的竞争力就是学习能力。技术一直在变化,框架一直在更新,学还是不学。 不学,你会落伍,学,太累了,根本学不过来。学习只要找对了方法,也没那么累。 最好的学习方式那就是兴趣驱使你去学习,但这种几乎很少,还有一种就是群体学习,就是大家一起学习,有问题一起讨论,这样的方式学起来会很轻松,这条路上的人多了,并不孤单。 今天着重的介绍下我的知识星球以及后续的规划: 知识星球...

weixin_30509393的博客 105

我的mongodb学习之路-1入门配置环境篇

认识mongodb的同时,请先熟悉一个名词:nosql→非关系数据库,非关系数据库与关系型数据库的区别,我在这里不阐述了,好学者可以百度一下,也可以留言。 另外非关系数据库除了mongodb之外还有几种:Redis,Neo4j,Habse等,其中还建议程序猿们多熟悉一下。 这里我们先讲mongodb: 至于定义我们就不在叙述了,我也只知道这个是Nosql的一种,是一种菲关系数据库,找工作的时

uoyou138的专栏 580

新手学习web前端都要学点什么

  Web开发如今是如日中天,热的发烫。但是Web开发相关的技术和知识却像N座大山一样,耸立在我们面前,连绵起伏,漫无边际。那么这些山头那些我们应该占领,那些我们应该绕开,很多人看着就蒙了,这不光是初学者,很多学了几年的人也会有些迷茫或者彷徨,怕走到悬崖边。就像当年写如果你选择的开发工具是de...

chuocui9077的博客 164
上一篇: js if()语句后加与不加{}的区别
下一篇: 程序英语单词集
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值