Mongodb 完结笔记

本文详细介绍了MongoDB的各个方面,从基本概念、特点到安装过程,涵盖了MongoDB的常用命令、查询操作、Java客户端连接以及SpringBoot整合。重点讲解了MongoDB的复制(主从和副本集)、分片技术,帮助读者理解如何实现MongoDB的扩展性和高可用性。
摘要由CSDN通过智能技术生成

MongoDB

mongodb中文文档

1、 MongoDB引言

1.1 基本概念

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。Nosql技术门类 redis 内存型 mongodb 文档型

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

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

1.2 MongoDB的特点

  • Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
  • MongoDB 是一个面向文档存储的数据库,易存储对象类型的数据
  • 你可以在MongoDB记录中设置任何属性的索引 来实现更快的排序。
  • MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
  • 支持复制和故障恢复以及分片

1.3 Mongodb的安装(Ubuntu20.04安装MongoDB)

安装页面

1.4 客户端基本操作

  1. 启动 mongoDB
./mongod --port=27017 --dbpath=/root/data
  1. 客户端连接
./mongo --port 27017
  1. .客户端基本操作
查看mongodb中所有库   show databases | show dbs
选中一个库  use database
查询当前所在库  db
创建库  use database #创建完成后会自动切换到这个库  mongo中不显示没有集合的库 
查询当前库中有哪些集合   show collections
创建集合    db.createCollection("collectionName")
删除集合  db.集合名称.drop()

2、 Mongodb中常用的指令

2.1 库相关命令

查看库  show dbs | show databases
使用库  use 库名  #不存在则创建,并切换到新建库  存在 直接切换
查询当前使用库  db
删除一个库  db.dropDatabase()
帮助指令  db.help()

2.2 collection 相关指令

创建一个集合:
	显式创建  db.createCollection("collectionName")
	隐式创建  db.集合名称.insert({
  "name":"zhangsan"})
查询库中存在哪些集合:  show collections
删除库中集合:  db.集合名.drop()

2.3 集合操作 CRUD 增删改查

1、向集合中插入数据
 db.集合名称.insert({
  "name":"zhangsan"})
 db.集合名称.insertMany([{
  "name":"zhangsan"},{
  "name":"xiaosi"}])
 使用js语法插入多条数据到mongodb中
 for(var i=0;i<10;i++){
... db.mytest.insert({id:i,name:"xiaohei"+i});
... }

2、删除集合中记录
db.集合名.remove({})   #删除全部
db.集合名.remove({删除条件})   指定条件删除

3、修改集合中记录
db.集合名.update({查询结果},{更新的内容},{条件})
db.集合名.update({查询结果},{更新的内容},{multi:true})  --开启多条更新
db.集合名.update({
  "name":"xiaohei2"},{$set:{
  "name":"xiaohei1"}},{multi:true,upsert:true})  --upsert:没有查询结果时插入记录
4、查询集合中记录
db.集合名.find()
db.集合名.count()  //查询集合中条数

3、查询基本使用

3.1 基本查询

1.查询所有  db.集合名称.find() 
2.查询一个  db.集合名称.findOne()
3.条件查询  db.集合名称.find|findOne({name:"",.....})
4.指定查询结果显示的key:
	db.集合名.find({查询条件},{显示字段})
	eg: db.test.find({name:"xiaohei1"},{name:1,age:1})
	0 代表查询的结果不显示这个字段
	1 代表查询的结果只显示这些字段
5.查询结果的排序
	db.test.find().sort({age:1,name:-1}) -- 1升序 0降序
6.分页查询
	db.test.find().sort({age:1,name:-1}).skip(起始条数).limit(每页查询记录数)
	db.test.find().sort({age:1,name:-1}).skip((pageNow-1)*pageSize).limit(pageSize)
7.总条数查询
	db.集合名.count()
	db.集合名.find({条件}).count()  基于条件查询后的总条数
8.模糊查询 通过 **正则表达式** 模拟的查询
	db.集合名称.find({
  "name":"/ao/"})   --ERROR 会把/ao/当成一个字符串
	db.users.find({name://})
9.在数组中查询
	db.users.find({likes:"看电视"})
	结果为{ "_id" : 11, "name" : "不良人_11", "age" : 29, "likes" : [ "看电视", "读书" ] }

3.2 高级查询语法

1.等值查询  =($eq)
	db.集合名.find({name:"xiaohei1"})
	db.集合名.find({name:{$eq:"xiaohei1"}})
2. 且查询  and ($and)
	db.集合名.find({$and:[ {}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【***.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【***.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【***-sources.jar下载地址(官方地址+国内镜像地址).txt】 # 本文件关键字: 中文-英文对照文档,中英对照文档,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【***.jar中文文档.zip】,再解压其中的 【***-javadoc-API文档-中文(简体)版.zip】,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·本文档为双语同时展示,一行原文、一行译文,可逐行对照,避免了原文/译文来回切换的麻烦; ·有原文可参照,不再担心翻译偏差误导; ·边学技术、边学英语。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
1.了解Spring 2.了解NoSQL文档数据库 3.要求 4.其他帮助资源 4.1。支持 4.1.1。社区论坛 4.1.2。专业支持 4.2。发展之后 5.新&值得注意的 5.1。Spring Data MongoDB 2.1中的新特性 5.2。Spring Data MongoDB 2.0中的新特性 5.3。Spring Data MongoDB 1.10中的新特性 5.4。Spring Data MongoDB 1.9中的新特性 5.5。Spring Data MongoDB 1.8中的新特性 5.6。Spring Data MongoDB 1.7中有什么新功能 6.依赖 6.1。Spring Boot的依赖管理 6.2。Spring框架 7.使用Spring Data Repositories 7.1。核心概念 7.2。查询方法 7.3。定义存储库接口 7.3.1。微调储存库定义 7.3.2。空处理存储库方法 7.3.3。将存储库与多个Spring Data模块一起使用 7.4。定义查询方法 7.4.1。查询查询策略 7.4.2。查询创建 7.4.3。属性表达式 7.4.4。特殊参数处理 7.4.5。限制查询结果 7.4.6。流式查询结果 7.4.7。异步查询结果 7.5。创建存储库实例 7.5.1。XML配置 7.5.2。JavaConfig 7.5.3。独立使用 7.6。Spring Data存储库的自定义实现 7.6.1。定制个人存储库 7.6.2。自定义基础存储库 7.7。从聚合根发布事件 7.8。Spring数据扩展 7.8.1。Querydsl扩展 7.8.2。Web支持 7.8.3。存储库填充程序 7.8.4。传统网络支持 参考文档 8.介绍 8.1。文档结构 9. MongoDB支持 9.1。入门 9.2。示例存储库 9.3。用Spring连接到MongoDB 9.3.1。使用基于Java的元数据注册Mongo实例 9.3.2。使用基于XML的元数据注册Mongo实例 9.3.3。MongoDbFactory接口 9.3.4。使用基于Java的元数据注册MongoDbFactory实例 9.3.5。使用基于XML的元数据注册MongoDbFactory实例 9.4。MongoTemplate简介 9.4.1。实例化MongoTemplate 9.4.2。WriteResultChecking策略 9.4.3。WriteConcern 9.4.4。WriteConcernResolver 9.5。保存,更新和删除文档 9.5.1。如何_id在映射图层中处理该字段 9.5.2。类型映射 9.5.3。保存和插入文件的方法 9.5.4。更新集合中的文档 9.5.5。在集合中插入文档 9.5.6。在集合中查找和插入文档 9.5.7。删除文件的方法 9.5.8。乐观锁定 9.6。查询文件 9.6.1。查询集合中的文档 9.6.2。查询文件的方法 9.6.3。查询不同的值 9.6.4。地理空间查询 9.6.5。GeoJSON支持 9.6.6。全文查询 9.6.7。排序规则 9.6.8。JSON模式 9.6.9。流利的模板API 9.7。按实例查询 9.7.1。介绍 9.7.2。用法 9.7.3。示例匹配器 9.7.4。执行一个例子 9.7.5。无类型示例 9.8。减少地图操作 9.8.1。使用示例 9.9。脚本操作 9.9.1。使用示例 9.10。集团运营 9.10.1。使用示例 9.11。聚合框架支持 9.11.1。基本概念 9.11.2。支持的聚合操作 9.11.3。投影表达式 9.11.4。分面分类 9.12。用自定义转换器覆盖默认映射 9.12.1。使用已注册的Spring Converter进行保存 9.12.2。使用Spring转换器读取 9.12.3。使用MongoConverter注册Spring转换器 9.12.4。转换器消除歧义 9.13。索引和集合管理 9.13.1。创建索引的方法 9.13.2。访问索引信息 9.13.3。使用集合的方法 9.14。执行命令 9.14.1。执行命令的方法 9.15。生命周期事件 9.16。例外翻译 9.17。执行回调 9.18。GridFS支持 9.19。更改流 9.19.1。使用MessageListener更改流 9.19.2。更改流 - 无效 10.反应性的MongoDB支持 10.1。入门 10.2。使用Spring和Reactive Streams Driver连接到MongoDB 10.2.1。使用基于Java的元数据注册MongoClient实例 10.2.2。ReactiveMongoDatabaseFactory接口 10.2.3。使用基于
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值