MongoDB(NoSQL)数据库入门及基本操作

article/2025/10/3 11:52:41

文章目录

  • 一、NoSQL 简介
    • 1.1 NoSQL的优点
    • 1.2 NoSQL的缺点
    • 1.3 NoSQL的分类
  • 二、MongoDB
    • 2.0 demo示例
    • 2.1 install and connect mongoose
    • 2.2 基本指令

一、NoSQL 简介

NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",是非关系型的数据库。

NoSQL用于超大规模数据的存储。
(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)

这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

1.1 NoSQL的优点

  • 高可扩展性
  • 分布式计算
  • 低成本
  • 架构的灵活性,半结构化数据
  • 没有复杂的关系

1.2 NoSQL的缺点

  • 没有标准化
  • 有限的查询功能(到目前为止)
  • 最终一致是不直观的程序

1.3 NoSQL的分类

在这里插入图片描述
接下来重点讲解 文档存储类型的MongoDB

(文档存储一般用类似json的格式存储)


二、MongoDB

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统

在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
在这里插入图片描述

在这里插入图片描述

  • Schema: 相当于一个数据库的模板.
    Model可以通过mongoose.model集成其基本属性内容. 当然也可以选择不继承.

  • Model:基本文档数据的父类,通过集成Schema定义的基本方法和属性得到相关的内容.

  • instance: 真正的数据, 通过 new Model()初始化得到.

2.0 demo示例

const mongoose = require('mongoose');mongoose.connect('mongodb://localhost:27017/test');
const con = mongoose.connection;
con.on('error', console.error.bind(console, '连接数据库失败'));
con.once('open',()=>{//定义一个schemalet Schema = mongoose.Schema({category:String,name:String});Schema.methods.eat = function(){console.log("I've eatten one "+this.name);}//继承一个schemalet Model = mongoose.model("fruit",Schema);//生成一个documentlet apple = new Model({category:'apple',name:'apple'});//存放数据apple.save((err,apple)=>{if(err) return console.log(err);apple.eat();//查找数据Model.find({name:'apple'},(err,data)=>{console.log(data);})});
})

2.1 install and connect mongoose

使用mongoose前,需要电脑已有 nodeJS和mongodb数据库.

下载mongoose:

npm install mongoose --save

连接mongoose:

const mongoose = require('mongoose');mongoose.connect('mongodb://localhost:27017/test');
const con = mongoose.connection;
con.on('error', console.error.bind(console, '连接数据库失败'));
con.once('open',()=>{//成功连接
})

2.2 基本指令

  1. show dbs 显示数据库

  2. show collections 显示数据库中的集合

  3. db.<collection>.insert(doc) 插入文档

  4. db <collection>.insertMany(doc 插入多个

例如:

db.runoob.insert({"name":"erya"})db.collection.insertMany([ <document 1> , <document 2>, ... ],

  1. db.<collection>.find() 查看所有的文档
  2. db.<collection>.find({key:value}) 查看带有指定key value文档的集合
  3. db.<collection>.findOne({key:value}).name 查看指定key value的第一个文档
  4. db.<collection>.find({key:value}).count() 查看数量
  5. db.<collection>.find({key:value}).length() 查看数量
  6. db.<collection>.find().limit(num)限制查询出的数量

  7. db.<collection>.update(doc1,doc2) 把查询带有doc1的属性的文档用doc2替代
  8. db.student.update({age:1000},{$set:{strenth:10}}) 如何设置属性,没有属性可以增加属性
  9. db.student.update({age:1000},{$unset:{strenth:10}}) 删除strenth为key的条目
  10. db.student.remove(doc,isSingle)   删除一个或者多个
  11. db.student.deleteOne(doc) 删除一个
  12. db.student.deleteMany(doc) 删除多个
  13. remove(doc,true) 第二个参数传入true,则只删除一个
  14. remove({}) 全部删除

a. $ne不等于

例:查询x 的值不等于3 的数据

db.things.find( { x : { $ne : 3 } } );

http://chatgpt.dhexx.cn/article/d6kpQWla.shtml

相关文章

NoSql入门

一.概念&#xff1a; NoSQL(NOSQL Not Only SQL)&#xff0c;意即“不仅仅是SQL”&#xff0c;泛指非关系型的数据库。随着互联网web2.0网站的兴起&#xff0c;传统的关系数据车在应付web2.0网站&#xff0c;特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从…

大数据开发——Hive实战案例

文章目录 1. 创建表结构1.1 视频表结构1.2 用户表结构 2. 准备工作2.1 创建临时表2.2 创建最终使用表2.3 对创建表进行解读 3. 业务分析 1. 创建表结构 1.1 视频表结构 1.2 用户表结构 2. 准备工作 2.1 创建临时表 由于使用的是orc方式进行存储&#xff0c;所以我们需要建立…

【大数据处理技术】实验4

安装MongoDB&#xff08;Ubuntu版本&#xff1a;22.04 LTS&#xff09; 0.查看Ubuntu版本 命令&#xff1a;lsb_release -a 1.使用Ubuntu命令安装 &#xff08;1&#xff09;更新系统包&#xff1a; sudo apt update&#xff08;可选&#xff09; sudo apt upgrade&#x…

大数据处理的五大关键技术及其应用

数据处理是对纷繁复杂的海量数据价值的提炼,而其中最有价值的地方在于预测性分析,即可以通过数据可视化、统计模式识别、数据描述等数据挖掘形式帮助数据科学家更好的理解数据,根据数据挖掘的结果得出预测性决策。其中主要工作环节包括:   大数据采集、大数据预处理、大数…

大数据技术原理与应用----大数据处理架构Hadoop

一、Hadoop简介及其应用现状 1、Hadoop简介 Hadoop&#xff08;是大数据技术的集合体&#xff0c;一整套解决方案的统称&#xff09;是由Java开发的&#xff0c;支持多种编程语言。 2、Hadoop的理论基础 &#xff08;1&#xff09;Hadoop的两大核心 ①分布式文件系统&#x…

浅析大数据分析技术

随着大数据时代的到来&#xff0c;在大数据观念不断提出的今天&#xff0c;加强数据大数据挖掘及时的应用已成为大势所趋。大数据分析处理是对纷繁复杂的海量数据价值的提炼&#xff0c;而其中最有价值的地方在于预测性分析&#xff0c;即可以通过数据可视化、统计模式识别、数…

大数据系统及分析技术

大数据 IDC将大数据技术定义为&#xff1a;“为更经济地从高频率的、大容量的、不同结构和类型的数据中获取价值而设计的新一代架构和技术。” 大数据的关键在于种类繁多、数量庞大、使用传统的数据分析工具无法在可容忍的时间内处理相应的数据。大数据分析主要涉及两个不同的领…

【大数据处理技术】实验6

目录 1. 安装pig大数据分析工具 1.1 pig介绍 1.1.1 Pig简介 1.1.2 Apache Pig 与 MapReduce 1.1.3 Apache Pig 与 SQL 1.1.4 Apache Pig 与 Hive 1.1.5 Apache Pig的应用 1.2 pig下载及安装 1.3 配置环境变量 1.4 pig启动 2. pig工具使用方法 2.1 pig工具简单解析 …

【大数据处理技术】实验3

一、安装Eclipse 1.下载Eclipse&#xff08;我使用Xftp传输的&#xff0c;大家可以直接在虚拟机中下载&#xff09; 下载链接&#xff1a;https://www.eclipse.org/downloads/package 2.解压Eclipse 3.桌面显示Eclipse图标 在终端输入&#xff1a;cd /usr/share/application…

处理大数据需要哪些技术

大数据之所以能够从概念走向落地&#xff0c;说到底还是因为大数据处理技术的成熟&#xff0c;面对海量的数据&#xff0c;在有限的硬件条件下&#xff0c;以低成本满足大数据处理的各种实际需求。那么具体处理大数据需要哪些技术&#xff0c;今天我们来简单介绍一下大数据核心…

干货 | 大数据处理技术的总结与分析

一 、数据分析处理需求分类 1、事务型处理 在我们实际生活中&#xff0c;事务型数据处理需求非常常见&#xff0c;例如&#xff1a;淘宝网站交易系统、12306网站火车票交易系统、超市POS系统等都属于事务型数据处理系统。 这类系统数据处理特点包括以下几点&#xff1a; 一是事…

大数据技术介绍

为了方便大家梳理清楚大数据学习路线&#xff0c;本文从以下四个方面来介绍大数据技术&#xff1a; 大数据技术栈 大数据发展史 大数据应用 大数据开发岗位 一、大数据技术栈 之前有同事问我怎么转大数据开发&#xff0c;他在网上搜了一堆大数据相关的技术&#xff0c;但是不…

大数据时代:大数据处理技术及采集方法

在大数据时代&#xff0c;传统的大数据处理技术还管用吗? 大数据处理环节下的需求 大数据环节下的数据来源是非常多&#xff0c;而且类型也很多花样&#xff0c;存储和数据处理的需求量很大&#xff0c;对于数据展现也非常的高&#xff0c;并且很看重数据处理的高效性和可用…

大数据处理的关键技术有哪些?

数据关键技术涵盖数据存储、处理、应用等多方面的技术&#xff0c;根据大数据的处理过程&#xff0c;可将其分为大数据采集、大数据预处理、大数据存储及管理、大数据处理、大数据分析及挖掘、大数据展示等。 1、大数据采集技术 大数据采集技术是指通过 RFID 数据、传感器数据…

大数据处理关键技术主要有五种,具体指的是什么?

大数据技术 ,就是从各种类型的数据中快速获得有价值信息的技术。 大数据 领域已经涌现出了大量新的技术,它们成为大数据采集、存储、处理和呈现的有力武器。大数据处理关键技术一般包括:大数据采集、大数据预处理、大数据存储及管理、大数据分析及挖掘、大数据展现和应用…

数据分析|SQL面试题集锦

https://zhuanlan.zhihu.com/p/136619982 https://www.cnblogs.com/diffrent/p/8854995.html 1.用一条SQL 语句 查询出每门课都大于80 分的学生姓名 name kecheng fenshu 张三 语文 81 张三 数学 75 李四 语文 76 李四 数学 90 王…

Sql面试50题 详解 持续更新

Sql面试50题 前言&#xff1a;此文章是根据【数据分析】- SQL面试50题 - 跟我一起打怪升级 一起成为数据科学家 学习整理而来&#xff0c;仅供复习参考。 建表与插入数据 --建立学生表 CREATE TABLE Student( s_id VARCHAR(20), s_name VARCHAR(20) NOT NULL DEFAULT , s_bi…

大厂SQL面试题,连续时间问题

今天分享一个非常常考&#xff0c;同时也不太容易的sql题目类型&#xff0c;求连续时间问题。 这类题的核心是&#xff1a;分组排序&#xff0c;用时间减去排序&#xff0c;如果连续的话他们的差会是相同值 记住下面的表&#xff0c;按照提供的三步思路理清楚里面的数据逻辑&a…

经典Hive-SQL面试题及答案

目录 第一题 求分区累加值 第二题 UV和每个店铺访问量top3信息 Hive sql解答 第一题 求分区累加值 我们有如下的用户访问数据 userId visitDate visitCount u01 2017/1/21 5 u02 2017/1/23 6 u03 2017/1/22 8 u04 2017/1/20 3 u01 2017/1/23 6 u01 2017/2/21 8 U02 2017/1/…

吊打面试官之SQL面试题30问及答案

经典SQL30问一: 编写查询,查找表中的行总数。编写查询,消除表结果中的重复记录。编写查询,获取t_employee表中designation字段前3个字符。查询t_employee表,合并输出Designation和Department两个字段的内容。如果使用union和union all合并4条SQL子查询,union会有多少次被用来去…