spirng集成Mongodb Criteria 进行子文档查询
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spirng集成Mongodb Criteria 进行子文档查询相关的知识,希望对你有一定的参考价值。
@Documentpublic class FormData @Id private String id; . ...... private Map<String, Object> datas;....
对象FormData中含有datas字段,字段里面是表中的 标签和值。可以看到,我插入了100个Document 每个Document下又有datas字段,它是map类型插入进来的,图中显示是Document的类型即 子文档。
需求来了:想从100条Document中查出 datas下 如:系统模块 = 营业受理 的Documnt。
想用 Criteria 来加入条件,查询,能写出来嘛?接口条件查询用的就是Query(Criteria)
BSON是一个轻量级的二进制数据格式。
MongoDB能够使用BSON,并将BSON作为数据的存储存放在磁盘中。
当Client端要将写入文档,使用查询等等操作时,需要将文档编码为BSON格式,然后再发送给Server端。同样,Server端的返回结果也是编码为BSON格式再放回给Client端的。
Spirng中Mongodb中write-concern的解释
Spring在插入数据库时没有返回状态配置:write-concern获取异常
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mongo="http://www.springframework.org/schema/data/mongo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo.xsd"> <!-- 配置 spring-data 连接 mongo 的mongoTemplate --> <!--首先列一下WriteConcern的几种抛出异常的级别参数: WriteConcern.NONE:没有异常抛出 WriteConcern.NORMAL:仅抛出网络错误异常,没有服务器错误异常 WriteConcern.SAFE:抛出网络错误异常、服务器错误异常;并等待服务器完成写操作。 WriteConcern.MAJORITY: 抛出网络错误异常、服务器错误异常;并等待一个主服务器完成写操作。 WriteConcern.FSYNC_SAFE: 抛出网络错误异常、服务器错误异常;写操作等待服务器将数据刷新到磁盘。 WriteConcern.JOURNAL_SAFE:抛出网络错误异常、服务器错误异常;写操作等待服务器提交到磁盘的日志文件。 WriteConcern.REPLICAS_SAFE:抛出网络错误异常、服务器错误异常;等待至少2台服务器完成写操作。 --> <mongo:mongo-client replica-set="${im.mongodb.replica.set}" > <mongo:client-options write-concern="NORMAL" /> </mongo:mongo-client> <!-- mongo模板类实例 --> <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> <constructor-arg ref="mongo" /> <constructor-arg name="databaseName" value="${im.mongodb.name}" /> </bean>
以上是关于spirng集成Mongodb Criteria 进行子文档查询的主要内容,如果未能解决你的问题,请参考以下文章
java - 如何在java中查询mongoDb时使用Criteria all?