MongoDB
文章平均质量分 85
85程序员老王
以下软件的中文版已译“Apache Spark”、“Apache Hudi”、“Apache Flink”、“Spring for Apache Kafka”、“Spring Data Elasticsearch”、“Spring Data MongoDB”、“Spring Data Redis”,文章定期更新中
展开
-
Spring整合MongoDB(十六)----CDI集成
存储库接口的实例通常由容器创建,在使用Spring Data时,Spring是最自然的选择。从1.3.0版本开始,Spring Data MongoDB附带了一个自定义的CDI扩展,允许你在CDI环境中使用存储库抽象。扩展是JAR的一部分。要激活它,请将Spring Data MongoDB JAR放入类路径中。Spring Data MongoDB CDI扩展选择可用的MongoTemplate作为CDI bean,并在容器请求存储库类型的bean时为Spring Data存储库创建代理。原创 2024-03-11 11:14:12 · 382 阅读 · 0 评论 -
Spring整合MongoDB(十五)----MongoDB特有的数据操作方法
除了之外,还可以使用专门的方法更新数据。原创 2024-03-11 10:34:30 · 517 阅读 · 0 评论 -
Spring整合MongoDB----Template API之保存、更新和删除Documents
MongoTemplate / ReactiveMongoTemplatge允许你保存、更新和删除域对象,并将这些对象映射到存储在MongoDB中的documents。命令式和反应式(reactive)API的API签名大部分相同,只是返回类型不同。当同步API使用void、single Object和List时,反应式(reactive)对应地由Mono< Void>, Mono< Object> and Flux组成。原创 2024-03-01 08:27:51 · 1311 阅读 · 0 评论 -
Spring整合MongoDB----对象映射之创建索引
Spring Data MongoDB可以自动为用@Document注解的实体类型创建索引。从3.0版本起,必须显式启用索引创建,以防止对集合生命周期和性能产生不希望的影响。在应用程序启动时以及在应用程序运行时首次访问实体类型时,会自动为初始实体集创建索引。我们通常建议为基于应用程序的索引控制创建显式索引,因为Spring Data无法自动为在应用程序运行时重新创建的集合创建索引。原创 2024-03-01 07:49:23 · 466 阅读 · 0 评论 -
Spring整合MongoDB----对象映射之对象引用
在这种情况下,引用的实际对象或集合是在首次访问属性时解析的。这种方法允许链接类型不需要将链接值存储在拥有的(owning )document中,而是存储在引用的文档中,如下面的示例所示。@DocumentReference(lookup)允许定义与_id字段不同的过滤器查询,因此提供了一种灵活的方式来定义实体之间的引用,如下面的示例所示,其中书籍的Publisher通过其首字母缩略词而不是内部id来引用。它们可以是任何东西,一个值,一个完整的document,基本上是可以存储在MongoDB中的所有东西。原创 2024-03-01 07:48:40 · 580 阅读 · 0 评论 -
Spring整合MongoDB----对象映射之非包装类型
未包装实体用于在Java领域模型中设计值对象,其属性被展平(flattened)到父类的MongoDB Document中。原创 2024-03-01 07:47:18 · 344 阅读 · 0 评论 -
Spring整合MongoDB----对象映射之属性转换器
虽然基于类型的转换已经提供了影响目标存储中某些类型的转换和表示的方法,但当仅考虑特定类型的某些值或属性进行转换时,它会受到限制。基于属性的转换器允许以声明方式(通过@ValueConverter)或编程方式(通过为特定属性注册PropertyValueConverter)按每个属性配置转换规则。PropertyValueConverter可以将给定值转换为其存储表示形式(写入)和返回(读取),如下所示。额外的ValueConversionContext提供了额外的信息,例如映射元数据和直接读写方法。原创 2024-03-01 07:46:24 · 483 阅读 · 0 评论 -
Spring整合MongoDB----对象映射之基于类型的转换器
如果你编写的转换器的源类型和目标类型都是native类型,框架无法确定是将其视为读取转换器还是写入转换器。将转换器实例同时注册为两者可能会导致不需要的结果。例如,Converter是不明确的,尽管在写入时尝试将所有String实例转换为Long实例可能没有意义。为了使你能够强制基础结构(infrastructure)仅以一种方式注册转换器,框架提供了在转换器实现中使用的@ReadingConverter和@WritingConverter注解。原创 2024-03-01 07:45:32 · 466 阅读 · 0 评论 -
Spring整合MongoDB----对象映射之JSON Schema
从3.6版本开始,MongoDB支持根据提供的 JSON Schema验证documents的集合。在创建集合时,可以定义schema本身以及验证操作和级别,如下例所示:例1:示例JSON schema你可以通过指定schema document(即,通过使用Document API解析或构建document对象)或使用Spring Data的JSON schema实用程序在org.springframework.data.mongodb.core.schema中构建它来提供schema。原创 2024-02-29 21:57:52 · 616 阅读 · 0 评论 -
Spring整合MongoDB(十四)----Mongodb特有的查询方法
见定义查询方法。原创 2024-02-27 08:20:39 · 862 阅读 · 0 评论 -
Spring整合MongoDB(十三)----创建Repository实例
本文介绍如何为已定义的存储库接口创建实例和bean定义。原创 2024-02-27 07:59:10 · 129 阅读 · 0 评论 -
Spring整合MongoDB(十二)----MongoDB Repositories
见定义存储库接口。原创 2024-02-26 20:33:01 · 682 阅读 · 0 评论 -
Spring整合MongoDB(十一)----加密Encryption (CSFLE)
[TOC](【Spring连载】使用Spring Data访问 MongoDB(十一)----加密Encryption (CSFLE))客户端加密(Client-Side Field Level Encryption)是一种在将数据发送到MongoDB之前对应用程序中的数据进行加密的功能。我们建议你熟悉这些概念,最好是从中了解更多关于其功能和限制的信息,然后再继续通过Spring Data应用加密。原创 2024-02-26 17:07:53 · 757 阅读 · 0 评论 -
Spring整合MongoDB(十)----分片Sharding
MongoDB通过分片支持大型数据集,分片是一种在多个数据库服务器之间分发数据的方法。请参阅,了解如何设置分片集群及其要求和限制。Spring Data MongoDB使用@Sharded注解来标识存储在sharded集合中的实体,如下所示。原创 2024-02-26 17:06:52 · 541 阅读 · 0 评论 -
Spring整合MongoDB(九)----可尾游标Tailable Cursors
默认情况下,当客户端用完游标提供的所有结果时,MongoDB会自动关闭游标。在耗尽时关闭游标会将流转换为有限流。对于,可以使用 Tailable Cursor,该Cursor在客户端消耗完所有最初返回的数据后保持打开状态。可以使用MongoOperations.createCollection创建有上限的集合。为此,请提供所需的CollectionOptions.empty().capped()…。原创 2024-02-26 17:05:46 · 745 阅读 · 0 评论 -
Spring整合MongoDB(八)----变更流Change Streams
从MongoDB 3.6开始,Change Streams可以让应用程序获得更改通知,而无需跟踪(tail)操作日志(oplog)。更改流支持仅适用于副本集(replica sets)或分片(sharded)集群。Change Streams可以与命令式和反应式(reactive)MongoDB Java driver一起使用。强烈建议使用反应式变体,因为它的资源密集度较低。原创 2024-02-26 17:02:36 · 715 阅读 · 0 评论 -
Spring整合MongoDB----Template API 查询Documents
你可以使用Query和Criteria类来表达查询。它们的方法名称反映了native MongoDB操作名称,如lt、lte、is和其他名称。Query和Criteria类遵循fluent API风格,因此你可以将多个方法标准和查询链接在一起,同时拥有易于理解的代码。为了提高可读性,静态导入可以避免在创建查询和条件实例时使用“new”关键字。你还可以使用BasicQuery从纯JSON字符串创建Query实例,如下例所示:例1:从纯JSON字符串创建查询实例。原创 2024-02-26 16:31:37 · 1562 阅读 · 0 评论 -
Spring整合MongoDB----Aggregation Framework支持
Spring Data MongoDB为MongoDB 2.2版引入的聚合框架提供了支持。有关更多信息,请参阅MongoDB的聚合框架和其他数据聚合工具的完整。原创 2024-02-26 15:49:01 · 1157 阅读 · 0 评论 -
Spring整合MongoDB----类型映射Type Mapping
如果你希望避免将整个Java类名写入类型信息,但希望使用键,则可以在实体类上使用@TypeAlias注解。如果你需要更多地自定义映射,请查看TypeInformationMapper接口。该接口的实例可以在DefaultMongoTypeMapper上配置,而DefaultMongoTypeMapper又可以在MappingMongoConverter上配置。以下示例显示如何为实体定义类型别名:例2:定义实体的类型别名请注意,生成的document包含pers作为_class字段中的值。原创 2024-02-22 21:15:06 · 334 阅读 · 0 评论 -
Spring整合MongoDB----排序规则Collations
当MongoDB在第一次交互时自动创建集合时,将不使用注解的排序规则。如果创建的集合指定了排序规则,则除非指定其他排序规则,否则该排序规则将应用于索引创建和查询。与其他元数据一样,排序规则可以通过@Document注解的排序规则属性从域类型派生,并将在运行查询、创建集合或索引时直接应用。如果没有指定排序规则(Collation.simple()),MongoDB将使用简单的二进制比较。通过@Query注解的collation属性支持排序规则。仅当用于操作的排序规则与索引排序规则匹配时才使用索引。原创 2024-02-22 16:53:57 · 283 阅读 · 0 评论 -
Spring整合MongoDB(七)----会话和事务
从3.6版本开始,MongoDB支持会话的概念。会话的使用启用了MongoDB的模型,该模型保证操作以尊重其因果关系的顺序运行。这些实例分为ServerSession实例和ClientSession实例。在本节中,当我们谈到session时,我们指的是ClientSession。客户端会话内的操作不会与会话外的操作隔离。MongoOperations和ReactiveMongoOperations都提供了将ClientSession绑定到操作的网关方法。原创 2024-02-22 14:06:24 · 802 阅读 · 0 评论 -
Spring整合MongoDB(六)----审计
如果向ApplicationContext公开AuditorAware/ReactiveAuditorAware类型的bean,则审计基础结构会自动拾取它,并使用它来确定要在域类型上设置的当前用户。如果在ApplicationContext中注册了多个实现,则可以通过显式设置@EnableMongoAuditing的auditorAwareRef属性来选择要使用的实现。原创 2024-02-22 14:04:44 · 749 阅读 · 0 评论 -
Spring整合MongoDB(五)----生命周期事件
MongoDB映射框架包括几个“org.springframework.context.ApplicationEvent”事件,你的应用程序可以通过在ApplicationContext中注册特殊的beans来响应这些事件。基于Spring的ApplicationContext事件基础设施使其他产品(如Spring Integration)能够轻松接收这些事件,因为它们是基于Spring的应用程序中众所周知的事件机制。原创 2024-02-22 12:59:26 · 710 阅读 · 0 评论 -
Spring整合MongoDB(一)----快速指南
虽然MongoClient是MongoDB驱动程序API的入口点,但连接到特定的MongoDB数据库实例需要额外的信息,例如数据库名称和可选的用户名和密码。与直接实例化MongoClient实例相比,FactoryBean还有一个额外的优势,即还为容器提供了ExceptionTranslator实现,该实现将MongoDB异常转换为Spring的可移植DataAccessException层次结构中的异常,用于@Repository注解的数据访问类。首先,需要设置一个正在运行的MongoDB服务器。原创 2024-02-19 21:37:50 · 1568 阅读 · 0 评论 -
Spring整合MongoDB(三)----GridFS支持
方法从文件系统读取文件。它提供了静态工厂方法来封装默认的元数据字段(如whereFilename()和whereContentType())或通过whereMetaData()封装自定义字段。要使用不同的bucket,请使用来自同一Template实例的接受Supplier的构造函数。)操作接受一个InputStream、一个文件名和(可选的)关于要存储的文件的元数据信息。从GridFs读取文件的另一个选项是使用ResourcePatternResolver接口引入的方法。原创 2024-02-20 19:31:57 · 150 阅读 · 0 评论 -
Spring整合MongoDB(四)----对象映射Object Mapping
MappingMongoConverter可以使用元数据来驱动对象到documents的映射。@Id:应用于字段级别,以标记用于标识目的的字段。@MongoId:应用于字段级别,以标记用于标识目的的字段。接受可选的FieldType以自定义id转换。@Document:应用于类级别,表示该类是映射到数据库的候选类。你可以指定存储数据的集合的名称。@DBRef:应用于字段,指示它将使用com.mongodb.DBRef进行存储。原创 2024-02-20 19:33:31 · 448 阅读 · 0 评论 -
Spring整合MongoDB(二)----Template API
MongoTemplate及其反应式(reactive)对应类位于org.springframework.data.mongodb.core包中,是Spring MongoDB支持的中心类,为与数据库交互提供了丰富的功能集。该template提供了创建、更新、删除和查询MongoDB文档的方便操作,并提供了域对象和MongoDB documents之间的映射。配置后,MongoTemplate是线程安全的,可以在多个实例中重用。原创 2024-02-20 19:31:02 · 831 阅读 · 0 评论