MongoDB 学习笔记(入门看这一篇足矣),java大厂面试真题

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文

{ “ok” : 1 }

  1. 删除集合
  • db.collection.drop()

  • collection 为集合名称

3.2.3 文档操作
1 插入文档

show dbs; // 查看数据库

use test; // 如果 test 数据库不存在,则创建 test

// 插入一条记录,如果集合不存在,先创建集合,在插入数据

db.user.insert({“id”:“1”,“name”:“Gorit”,“age”:16});

// 一次性插入多条记录

db.user.insert({“id”:“5”,“name”:“Gorit555”,“age”:16},{“id”:“6”,“name”:“Gorit6666”,“age”:18});

// 一次性插入多条

db.user.insertMany([{“id”:“4”,“name”:“Gori333”,“age”:16},{“id”:“4”,“name”:“Gorit4444”,“age”:18}])

插入文档还有

  • db.collection_name.insertOne()

  • db.collection_name.insertMany()

2. 更新文档

语法

db.collection.update(

,

,

{

upsert: ,

multi: ,

writeConcern:

}

)

参数说明:

  • query : update的查询条件,类似sql update查询内where后面的。

  • update : update的对象和一些更新的操作符(如 , , ,inc…)等,也可以理解为sql update查询内set后面的

  • upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。

  • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

  • writeConcern :可选,抛出异常的级别。

// 添加测试数据

db.user.insert({“id”:“5”,“name”:"Gorit ",“age”:16},);

// 修改数据

db.user.update(

{“name”:“Gorit”},

{$set:{“name”:“张三”,“age”:17}}

);

// 这样做只会修改第一条同名的条件记录,如果要批量修改同名的记录,可以这么做

db.user.update(

{“name”:“Gorit”},

{$set:{“name”:“张三”,“age”:17}},

{multi:true}

);

// 更多的条件修改

只更新第一条记录:

db.col.update( { “count” : { $gt : 1 } } , { $set : { “test2” : “OK”} } );

全部更新:

db.col.update( { “count” : { $gt : 3 } } , { $set : { “test2” : “OK”} },false,true );

只添加第一条:

db.col.update( { “count” : { $gt : 4 } } , { $set : { “test5” : “OK”} },true,false );

全部添加进去:

db.col.update( { “count” : { $gt : 5 } } , { $set : { “test5” : “OK”} },true,true );

全部更新:

db.col.update( { “count” : { $gt : 15 } } , { $inc : { “count” : 1} },false,true );

只更新第一条记录:

db.col.update( { “count” : { $gt : 10 } } , { $inc : { “count” : 1} },false,false );

3. 删除文档

db.collection.remove(

,

)

// mangoDB 版本在 2.6 版本以后

db.collection.remove(

,

{

justOne: ,

writeConcern:

}

)

使用

// 删除所有数据

db.collection_ name.remove({})

// 删除指定字段的记录

db.collection_name.remove({“id”:“1”})

// 删除指定记录的第一条

db.collection_name.remove({“id”:“1”},1)

// 新版本删除所有的集合

db.collection_name.deleteMany({})

// 新版本删除多个 status 为 A的

db.collection_name.deleteMany({ status : “A” })

// 新版本删除一个 status 为 D 的集合

db.inventory.deleteOne( { status: “D” } )

4. 查询文档
4.1 条件查询

对应 where 条件查询

| 操作 | 格式 | 示例 | RDBMS 中对应的语句 |

| — | — | — | — |

| 等于 | { key:value } | db.user.find({“name”:“Gorit111”}) | where age = 17 |

| 小于 | { key : { KaTeX parse error: Expected 'EOF', got '}' at position 12: lt : value }̲ } | db.user.fi…lt:20}}); | where age < 20 |

| 小于或等于 | { key : { KaTeX parse error: Expected 'EOF', got '}' at position 13: lte : value }̲ | db.user.find…lte:20}}); | where age <= 20 |

| 大于 | { key : { KaTeX parse error: Expected 'EOF', got '}' at position 12: gt : value }̲ | db.user.find…gt:16}}); | where age > 16 |

| 大于或等于 | { key : { KaTeX parse error: Expected 'EOF', got '}' at position 13: gte : value }̲ | db.user.find…gte:16}}); | where age >=16 |

| 不等于 | { key : { KaTeX parse error: Expected 'EOF', got '}' at position 12: ne : value }̲ | db.user.find…ne: 16}}) | where age <> 16 |

//查看所有文档记录

db.collection_name.find()

// 查询一个文档

db.collection_name.findOne();

// 条件查询

// 条件查询 ==

db.user.find({“name”:“Gorit111”}) // where name = “张三” 全匹配

// 条件查询 小于

db.user.find({“age”:{$lt:17}}); // where age < 17

// 条件查询 小于或等于

db.user.find({“age”:{$lte:20}}); // where age <= 20

// 条件查询 大于

db.user.find({“age”:{$gt:16}}); // where age > 10

// 条件查询 大于或等于

db.user.find({“age”:{$gte:16}}); // where age >= 16

// 条件查询 不等于

db.user.find({“age”:{$ne: 16}})

4.2 逻辑查询

// 逻辑与 and 查询

db.user.find({“age”:17},{“id”:“1”})

// 逻辑或 or 查询

db.user.find(

{

$or: [

{“age”:17},

{“id”:“1”}

]

}

)

// 组合查询练习

where age <=20 or (name in (“张三”,“Gorit111”)

db.user.find(

{

“age”: {$lte: 20},

$or: [

{

“name”: “张三”

},{

“name”: “Gorit111”

}]

}

)

4.3 分页查询
  1. 分页参数 Limit()

db.collection_name.find().limit(number);

// 查询数据库汇中的三条记录,如果数据库没有指定 limit() ,默认查询所有的数据

db.user.find().limit(3);

  1. 使用 skip() 跳跃指定数量的数据

// 跳过第一条记录,查询往后的三条记录

db.user.find().limit(3).skip(1);

4.4 排序

在 MangoDB 中使用 sort() 方法对数据进行排序, sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来制定排序方式,1 表示升序列,-1 表示降序列

// 根据年龄升序

db.user.find().sort({“age”:1})

// 根据年龄降序排列

db.user.find().sort({“age”:-1});

4.5 聚合

MangoDB 中聚合(aggregate)主要用于处理数据(诸如平均值,求和等)并返回计算的结果

不过我下的版本貌似不支持聚合查询,所这里就不掩饰了。

3.3 数据库连接工具连接 MangoDB

有很多工具都可以连接,我使用的是 Jetbrains 公司提供的数据库连接软件:datagrip

当然使用 idea 自带的也可以

或者用其他的工具都行的

在这里插入图片描述

四、Java 连接 MangoDB

================================================================================

作为一名 Java 开发者,我们怎么能少了 Java 连接 mangoDB 呢?

接下来进入实战部分

4.1 SpringBoot 整合 MongoDB

SpringBoot 整合 MongoDB 整合

  1. 依赖导入

org.springframework.boot

spring-boot-starter-data-mongodb

  1. 配置文件编写

为了方便测试,我这里

应用服务 WEB 访问端口

server:

port: 8080

应用名称

spring:

application:

name: demo

resources: # spring 静态资源扫描路径

static-locations: classpath:/static/

data:

mongodb:

database: test # 要连接的数据库

host: localhost # 数据库地址

port: 27017 # 端口

#authentication-database: admin # 验证登录信息库

#username: # 连接数据库的账号

#password: # 连接书库的密码

  1. 实战

编写实体类

package cn.gorit.entity;

/**

  • @Classname Book

  • @Description TODO

  • @Date 2020/11/9 21:48

  • @Created by CodingGorit

  • @Version 1.0

*/

public class Book {

private Integer id;

private String name;

private String author;

// getter setter 构造方法省略

}

编写 BookDao

package cn.gorit.dao;

import cn.gorit.entity.Book;

import org.springframework.data.mongodb.repository.MongoRepository;

import java.util.List;

/**

  • @Classname BookDao

  • @Description TODO

  • @Date 2020/11/9 21:48

  • @Created by CodingGorit

  • @Version 1.0

*/

public interface BookDao extends MongoRepository<Book,Integer> {

List findAllByAuthor(String author);

Book findByNameEquals(String name);

}

编写 BookController

package cn.gorit.controller;

import cn.gorit.dao.BookDao;

import cn.gorit.entity.Book;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.data.mongodb.core.MongoTemplate;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RestController;

最后

总而言之,面试官问来问去,问的那些Redis知识点也就这么多吧,复习的不够到位,知识点掌握不够熟练,所以面试才会卡壳。将这些Redis面试知识解析以及我整理的一些学习笔记分享出来给大家参考学习

还有更多学习笔记面试资料也分享如下:

都是“Redis惹的祸”,害我差点挂在美团三面,真是“虚惊一场”

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
rit.controller;

import cn.gorit.dao.BookDao;

import cn.gorit.entity.Book;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.data.mongodb.core.MongoTemplate;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RestController;

最后

总而言之,面试官问来问去,问的那些Redis知识点也就这么多吧,复习的不够到位,知识点掌握不够熟练,所以面试才会卡壳。将这些Redis面试知识解析以及我整理的一些学习笔记分享出来给大家参考学习

还有更多学习笔记面试资料也分享如下:

[外链图片转存中…(img-0FaGP0ND-1713422971049)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-ZHdk0c9t-1713422971050)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一篇关于MongoDB入门的技术博客。 MongoDB是一个流行的NoSQL数据库,它可以处理大量的非结构化和半结构化数据。MongoDB的设计目标是提供高性能、高可用性和可伸缩性的数据库解决方案。在本文中,我们将介绍MongoDB的基本概念和使用方法。 安装MongoDB 在开始使用MongoDB之前,您需要先安装它。MongoDB可在官方网站上下载。根据您的操作系统,选择适当的安装包进行下载。我们在这里以Linux为例进行安装。 1. 下载MongoDB 您可以在官方网站上下载MongoDB。选择适当的安装包并下载。 2. 安装MongoDB 在Linux上,您可以使用以下命令安装MongoDB: ``` sudo apt-get install mongodb ``` 3. 启动MongoDB 安装完成后,您可以使用以下命令启动MongoDB: ``` sudo service mongodb start ``` 4. 连接MongoDB 您可以使用以下命令连接MongoDB: ``` mongo ``` 现在您已经成功安装和启动了MongoDB。 基本概念 在开始使用MongoDB之前,您需要了解一些基本概念。 1. 数据库 MongoDB存储数据的主要单元是数据库。每个数据库都有自己的集合和文档。 2. 集合 集合是一组相关文档的容器。它类似于关系数据库中的表。集合不需要预定义架构,因此可以存储各种类型的文档。 3. 文档 文档是MongoDB的基本单元,类似于关系数据库中的行。文档是一个JSON对象,可以包含各种类型的数据。 4. 字段 字段是文档中的一个属性。它包含一个名称和一个值。MongoDB文档可以包含嵌套的字段。 使用MongoDB 现在,我们将介绍如何使用MongoDB。 1. 创建数据库 您可以使用以下命令创建一个新的数据库: ``` use mydatabase ``` 在这个例子中,我们创建了一个名为“mydatabase”的数据库。 2. 创建集合 您可以使用以下命令创建一个新的集合: ``` db.createCollection("mycollection") ``` 在这个例子中,我们创建了一个名为“mycollection”的集合。 3. 插入文档 您可以使用以下命令向集合中插入一个文档: ``` db.mycollection.insert({"name": "John", "age": 30}) ``` 在这个例子中,我们向“mycollection”集合中插入了一个名为“John”的文档,他的年龄为30。 4. 查询文档 您可以使用以下命令查询集合中的文档: ``` db.mycollection.find() ``` 在这个例子中,我们查询了“mycollection”集合中的所有文档。 5. 更新文档 您可以使用以下命令更新集合中的文档: ``` db.mycollection.update({"name": "John"}, {"$set": {"age": 35}}) ``` 在这个例子中,我们将名为“John”的文档的年龄更新为35岁。 6. 删除文档 您可以使用以下命令删除集合中的文档: ``` db.mycollection.remove({"name": "John"}) ``` 在这个例子中,我们删除了名为“John”的文档。 7. 删除集合 您可以使用以下命令删除集合: ``` db.mycollection.drop() ``` 在这个例子中,我们删除了名为“mycollection”的集合。 总结 本文介绍了MongoDB的基本概念和使用方法。MongoDB是一个流行的NoSQL数据库,它可以处理大量的非结构化和半结构化数据。通过学习本文,您可以开始使用MongoDB,并为自己的项目选择最合适的数据库解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值