MongoDB学习笔记二

目录

1.MongoDB 的概念

1.数据库:

2.集合:

3.文档:

2.常见数据类型

3.如何链接mongo


1.MongoDB 的概念

在mongodb中基本的概念是文档、集合、数据库,以下是我整理的对应表格,可以帮助更容易理解Mongo中的概念:

SQL术语Mongo术语对应关系
databasedatabase数据库
tablecollection数据库表/mongo集合
rowdocument数据库行/mongo文档
columnfield数据库列/mongo域
indexindex索引
primary keyprimary key主键(mongo主键自动设为_id)

以下我们最主要了解三个核心的基本概念;

1.数据库:

简介:

一个mongodb中可以建立多个数据库,MongoDB的默认数据库为"db",该数据库存储在data目录中。

常用指令:

在mongo中,使用show dbs可以查看所有数据库

 运行use命令可以指定使用的数据库

mongo本身自带有三个库 admin local config,这些库分别是有特殊作用的,以下是说明:

admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。

local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合

config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。

2.集合:

介绍:

在 MongoDB 中,集合(Collection)是由一组文档(Document)组成的,类似于关系数据库中的表格。每个文档可以有不同的结构,但它们通常都有某些共同的字段。MongoDB 数据库中的每个文档都需要存储一个唯一键,这个键被称为 _id,它可以用来保证每个文档的唯一性。

在 MongoDB 中,一个集合有一些基本的规则:

  1. 集合名必须以字母开头,长度不能超过 64 个字符,并且不能包含空格、句点、美元符号或 null 字符;
  2. 如果插入的文档中没有 _id 字段,MongoDB 会自动为其生成一个唯一的 _id
  3. 相同名称的集合中可能会包含不同结构的文档;
  4. 尝试向不存在的集合中插入文档时,MongoDB 会自动创建该集合;
  5. 删除集合时,其中的所有文档也会被删除。

创建集合的方式:

db.createCollection("conllectionName",{})

db.conllectionName.insert({})  插入数据会自动创建集合

3.文档:

介绍:

在 MongoDB 中,文档(Document)是最基本的数据单元。它类似于关系型数据库中的一行记录,是 MongoDB 数据库中存储数据的基本单位。在 MongoDB 中,文档是由一组有序的键值对(key-value pairs)组成的,每个键值对被称为一个字段(Field),而整个文档则被存储在一个集合(Collection)中。MongoDB 中的文档可以包含不同类型的数据,例如字符串、整数、浮点数、布尔型、日期、数组、嵌套文档等。文档使用 BSON(Binary JSON)格式进行存储,这种格式具有高效率、易扩展等特点,也方便了数据传输和交换

创建规则:

在创建文档时需要注意以下几点:

  1. 文档中的键名不能重复;
  2. 键值对之间使用冒号(:)进行分隔,键值对与键值对之间使用逗号(,)进行分隔;
  3. 键名必须是字符串类型,但 MongoDB 会将双引号(")和单引号(')都作为字符串的标识符,因此可以使用任意一种符号;
  4. 键值可以是数组、对象等复杂类型。

简单使用:

在 MongoDB 中,要使用文档进行数据操作,通常需要完成以下几个步骤:
创建集合:如果集合不存在,需要先创建集合。可以通过 db.createCollection() 方法来创建集合,例如:

db.createCollection("users")

插入文档:使用 insertOne、insertMany 或 bulkWrite 方法向集合中插入文档,例如:

db.users.insertOne({
    "name": "Alice",
    "age": 18,
    "hobbies": ["reading", "traveling"],
    "address": {
        "city": "Shanghai",
        "street": "No.1234"
    }
})

查询文档:使用 find 或 findOne 方法查询集合中的文档,例如:

db.users.find({"name": "Alice"})

更新文档:使用 updateOne、updateMany 或 bulkWrite 方法来更新集合中的文档,例如:

db.users.updateOne({"name": "Alice"}, {"$set": {"age": 20}})

删除文档:使用 deleteOne、deleteMany 或 bulkWrite 方法来删除集合中的文档,例如:

db.users.deleteOne({"name": "Alice"})

需要注意的是,如果要插入的文档中没有 _id 字段,MongoDB 会自动为其生成一个唯一的 _id。

2.常见数据类型

在 MongoDB 中,常用的数据类型包括:

  1. 字符串:即文本类型,使用引号(单引号或双引号)来表示,例如 "hello"
  2. 整数:即整型,使用普通的数字来表示,例如 123
  3. 浮点数:即浮点型,使用小数点表示,例如 3.14
  4. 布尔型:即布尔值,只有两个取值 true 和 false
  5. 数组:即一组值的有序列表,使用中括号 [ ] 来表示,例如 [1, 2, 3]
  6. 对象:即键值对的集合,使用花括号 { } 来表示,例如 { "name": "Alice", "age": 18 }
  7. Null:即空值,表示这个字段没有值;
  8. 日期:即日期类型,可以使用 JavaScript 的 Date 对象进行表示;
  9. 正则表达式:即正则表达式类型,使用斜杠 / / 表示,例如 /^hello/
  10. 二进制数据:即二进制类型,可以存储图片、音频、视频等数据。

需要注意的是,MongoDB 还支持嵌套文档,即在文档中再嵌套其他文档。此外,MongoDB 还支持 Geospatial 数据类型,用于存储地理位置信息。

3.如何链接mongo

要在 Java 中连接 MongoDB 数据库,需要使用 MongoDB 的 Java 驱动程序。目前,MongoDB 官方推荐使用的 Java 驱动程序是 MongoDB Java 驱动程序(MongoDB Java Driver)。
下面是使用 MongoDB Java 驱动程序连接 MongoDB 数据库的步骤:
引入 MongoDB Java 驱动程序的依赖:xml
<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongo-java-driver</artifactId>
    <version>3.12.11</version>
</dependency>

1.使用代码链接:

创建 MongoClient 对象并指定 MongoDB 服务器的地址和端口:
MongoClient mongoClient = new MongoClient("localhost", 27017);
获取到 MongoDB 数据库的实例:
MongoDatabase database = mongoClient.getDatabase("mydb");
获取到 MongoDB 集合的实例,可以对集合进行增删改查等操作:
MongoCollection<Document> collection = database.getCollection("mycollection");
对 MongoDB 数据库进行增删改查等操作:
// 插入文档
Document doc = new Document("name", "Alice").append("age", 18).append("address", new Document("city", "Shanghai").append("street", "No.1234"));
collection.insertOne(doc);
// 查询文档
FindIterable<Document> result = collection.find(new Document("name", "Alice"));
for (Document document : result) {System.out.println(document.toJson());}
// 更新文档
collection.updateOne(Filters.eq("name", "Alice"), new Document("$set", new Document("age", 20)));
// 删除文档
collection.deleteOne(new Document("name", "Alice"));
需要注意的是,MongoDB Java 驱动程序还支持通过连接字符串(Connection String)来进行 MongoDB 数据库的连接。此外,MongoDB Java 驱动程序还提供了更高级的 API,例如使用对象映射器(Object Mapper)进行操作等。

2.配置properties或yml链接:

mongodb://username:password@ip:port/dataSoruceName

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值