spring-data-mongodb必须了解的操作
1关键之识别
| Keyword | Sample | Logical result |
| GreaterThan | findByAgeGreaterThan(int age) | {"age" : {"$gt" : age}} |
| LessThan | findByAgeLessThan(int age) | {"age" : {"$lt" : age}} |
| Between | findByAgeBetween(int from, int to) | {"age" : {"$gt" : from, "$lt" : to}} |
| IsNotNull, NotNull | findByFirstnameNotNull() | {"age" : {"$ne" : null}} |
| IsNull, Null | findByFirstnameNull() | {"age" : null} |
| Like | findByFirstnameLike(String name) | {"age" : age} ( age as regex) |
| Regex | findByFirstnameRegex(String firstname) | {"firstname" : {"$regex" : firstname }} |
| (No keyword) | findByFirstname(String name) | {"age" : name} |
| Not | findByFirstnameNot(String name) | {"age" : {"$ne" : name}} |
| Near | findByLocationNear(Point point) | {"location" : {"$near" : [x,y]}} |
| Within | findByLocationWithin(Circle circle) | {"location" : {"$within" : {"$center" : [ [x, y], distance]}}} |
| Within | findByLocationWithin(Box box) | {"location" : {"$within" : {"$box" : [ [x1, y1], x2, y2]}}}True |
| IsTrue, True | findByActiveIsTrue() | {"active" : true} |
| IsFalse, False | findByActiveIsFalse() | {"active" : false} |
| Exists | findByLocationExists(boolean exists) | {"location" : {"$exists" : exists }} |
publicinterfacePersonRepositoryextendsMongoRepository<Person,String>
@Query("{ 'firstname' : ?0 }")
List<Person> findByThePersonsFirstname(String firstname);
}
2.2查询部分属性
publicinterfacePersonRepositoryextendsMongoRepository<Person,String>
@Query(value="{ 'firstname' : ?0 }", fields="{ 'firstname' : 1, 'lastname' : 1}")
List<Person> findByThePersonsFirstname(String firstname);
}
3bean的配置属性
@Id- 配置id@Document映射到数据库的集合名,可以设置名称@DBRef- applied at the field to indicate it is to be stored using a com.mongodb.DBRef.@Indexed- applied at the field level to describe how to index the field.@CompoundIndex- applied at the type level to declare Compound Indexes@GeoSpatialIndexed- applied at the field level to describe how to geoindex the field.@Transient- 当有数据部需要保存的时候可以使用@PersistenceConstructor- marks a given constructor - even a package protected one - to use when instantiating the object from the database. Constructor arguments are mapped by name to the key values in the retrieved DBObject.@Value- this annotation is part of the Spring Framework . Within the mapping framework it can be applied to constructor arguments. This lets you use a Spring Expression Language statement to transform a key's value retrieved in the database before it is used to construct a domain object.@Field- 给该属性添加存储在数据库中的名字@Document
@CompoundIndexes({
@CompoundIndex(name ="age_idx",def="{'lastName': 1, 'age': -1}")
})//上面配置了联合属性lastName和age
publicclassPerson<T extendsAddress>{ @Id
privateString id; @Indexed(unique =true)
privateInteger ssn; @Field("fName")
privateString firstName; @Indexed
privateString lastName; privateInteger age; @Transient
privateInteger accountTotal; @DBRef
privateList<Account> accounts; private T address; publicPerson(Integer ssn){
this.ssn = ssn;
} @PersistenceConstructor
publicPerson(Integer ssn,String firstName,String lastName,Integer age, T address){
this.ssn = ssn;
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.address = address;
}
}
3.2 @DBRef使用

spring-data-mongodb必须了解的操作的更多相关文章
- Spring Data MongoDB 一:入门篇(环境搭建、简单的CRUD操作)
一.简介 Spring Data MongoDB 项目提供与MongoDB文档数据库的集成.Spring Data MongoDB POJO的关键功能区域为中心的模型与MongoDB的DBColle ...
- 使用Spring访问Mongodb的方法大全——Spring Data MongoDB查询指南
1.概述 Spring Data MongoDB 是Spring框架访问mongodb的神器,借助它可以非常方便的读写mongo库.本文介绍使用Spring Data MongoDB来访问mongod ...
- Spring Data MongoDB 三:基本文档查询(Query、BasicQuery)(一)
一.简单介绍 Spring Data MongoDB提供了org.springframework.data.mongodb.core.MongoTemplate对MongoDB的CRUD的操作,上一 ...
- Spring Data MongoDB 三:基本文档查询(Query、BasicQuery
一.简介 spring Data MongoDB提供了org.springframework.data.mongodb.core.MongoTemplate对MongoDB的CRUD的操作,上一篇我 ...
- Spring Data MongoDB 四:基本文档改动(update)(一)
Spring Data MongoDB 三:基本文档查询(Query.BasicQuery)(一) 学习MongoDB 二:MongoDB加入.删除.改动 一.简单介绍 Spring Data Mo ...
- Spring Data MongoDB 五:进阶文档查询(分页、Morphia)(二)
Spring Data MongoDB 三:基本文档查询(Query.BasicQuery)(一) 学习MongoDB 六: MongoDB查询(游标操作.游标信息)(三) 一.简单介绍 Spring ...
- 使用Spring访问Mongodb的方法大全——Spring Data MongoDB
1.概述 Spring Data MongoDB 是Spring框架访问mongodb的神器,借助它可以非常方便的读写mongo库.本文介绍使用Spring Data MongoDB来访问mongod ...
- spring data mongodb CURD
一.添加 Spring Data MongoDB 的MongoTemplate提供了两种存储文档方式,分别是save和insert方法,这两种的区别: (1)save :我们在新增文档时,如果有一 ...
- 使用Spring Data Mongodb的MongoRepository类进行增删改查
Spring Data Mongodb提供一套快捷操作 mongodb的方法,创建Dao,继承MongoRepository,并指定实体类型和主键类型. public interface CmsPag ...
- 如何在Spring Data MongoDB 中保存和查询动态字段
原文: https://stackoverflow.com/questions/46466562/how-to-save-and-query-dynamic-fields-in-spring-data ...
随机推荐
- boost之ThreadPool
threadpool是基于boost库实现的一个线程池子库,但线程池实现起来不是很复杂.我们从threadpool中又能学到什么东西呢? 它是基于boost库实现的,如果大家对boost库有兴趣,看看 ...
- MODULE_DEVICE_TABLE
1. MODULE_DEVICE_TABLE (usb, skel_table);该宏生成一个名为__mod_pci_device_table的局部变量,该变量指向第二个参数.内核构建时,depmod ...
- Myself
每次过来写博客,一定是遇到什么问题,并且自己还解决不来. 并不是单纯的安静下来书写心得体会-->讨厌之余都有点看不起自己. 闲话少说,回归正题. C语言之于我可是骄傲与挫败并存. 当我做程式遇到 ...
- 浅析 MySQL Replication(本文转自网络,非本人所写)
作者:卢飞 来源:DoDBA(mysqlcode) 0.导读 本文几乎涵盖了MySQL Replication(主从复制)的大部分知识点,包括Replication原理.binlog format.复 ...
- 带搜索功能,支持绑定对象到节点的TreeView辅助类
特点: 1.支持数叶子节点与对象绑定 2.支持xml导入,且数据类相关的xml可自定义,只和泛型的实现有关 3.支持节点搜索功能,可在树结构上要求只显示部分节点 4.用C#编写,但与平台关联性低,可移 ...
- XML中 添加或修改时 xmlns="" 怎么删除
//创建节点时 记得加上 ---> xmldoc.DocumentElement.NamespaceURI XmlElement url = xmldoc.CreateElement(&quo ...
- The use of function Merge (update、insert、delete)
1.The use of function merge(update.insert.delete) Example: #1.Initialize the data create table #test ...
- QQ联系客服
$('.side').bind('mouseenter mouseleave',function(e){ if(e.type=="mouseenter"){ if(!$(this) ...
- setAnimationStyle实现的popwindow显示消失的动画效果
摘要 popwindow通过setAnimationStyle(int animationStyle)函数来设置动画效果 android:windowEnterAnimation表示进入窗口动画 an ...
- QQ截图时窗口自动识别的原理(WindowFromPoint, ChildWindowFromPoint, ChildWindowFromPointEx,RealChildWindowFromPoint)
新版的QQ在截图时加入了窗口自动识别的功能,能根据鼠标的位置自动画出下面窗口的轮廓.今天有人在论坛上问起这个问题,下面我们来探讨这个功能的实现原理. 首先我们要明白截图软件的基本原理,截图时实际上是新 ...