springdata整合mongodb一些方法包括or,and,regex等等《有待更新》

这几天接触mongodb以及springdata,自己英语比较戳,所以整理这些方法花的时间多了点,不过也是我第一次在外国网站整理技术

不多说,直接上代码,这里只是给出一些操作方法而已,如果有需要源码的,请Q我206314068,如转载请注明出处

  1 package mongodbProject1;
  2
  3 import java.util.List;
  4
  5 import mg.pojo.User;
  6 import mg.pojo.UserList;
  7 import mg.service.UserService;
  8
  9
 10 import org.springframework.context.ApplicationContext;
 11 import org.springframework.context.support.ClassPathXmlApplicationContext;
 12 import org.springframework.data.mongodb.core.MongoTemplate;
 13 import org.springframework.data.mongodb.core.query.Criteria;
 14 import org.springframework.data.mongodb.core.query.CriteriaDefinition;
 15 import org.springframework.data.mongodb.core.query.Query;
 16
 17 import com.mongodb.CommandResult;
 18 import com.mongodb.DBObject;
 19
 20 public class Test {
 21 static ApplicationContext context=null;
 22 static MongoTemplate mongoTemplate=null;
 23 static{
 24      context=new ClassPathXmlApplicationContext("applicationContext.xml");
 25     mongoTemplate=context.getBean(MongoTemplate.class);
 26 }
 27 /**
 28  * 查询UserName中等于123的
 29  * where(String n) is(String s)
 30  */
 31 @org.junit.Test
 32 public void TestFind(){
 33
 34     Query query=Query.query(
 35     Criteria.where("UserName").is("123"));// is相当于sql语句中的=
 36     DBObject obj=query.getFieldsObject();
 37     try{
 38     List<User>userlist=mongoTemplate.find(query, User.class);
 39     System.out.println(userlist);
 40     }catch(Exception e){e.printStackTrace();}
 41
 42 }
 43 /**
 44  * all()方法是相当于and一样,功能是查询所有某个类型是数组或列表的字段中包含有"00"与"lzh"的记录具体详见
 45  * http://docs.mongodb.org/manual/reference/operator/query/all/
 46  * 测试数据:
 47  * {
 48
 49    Password: "xyz",
 50   UserName: [ "school", "book", "bag", "headphone", "appliance" ],
 51 }
 52  */
 53 @org.junit.Test
 54 public void testAll(){
 55     Query query=Query.query(Criteria.where("UserName").all("00","lzh"));
 56     try{
 57         List<UserList>userlist=mongoTemplate.find(query, UserList.class);System.out.println(userlist);
 58     }catch(Exception e){e.printStackTrace();}
 59 }
 60 /**
 61  * elemMatch()方法使用,其数据库格式如下
 62  * 查询的是对象数组下对象属性是否匹配相应的值
 63  * 数据格式如下:
 64  * db.inventory.find( {
 65                      qty: { $all: [
 66                                     { "$elemMatch" : { size: "M", num: { $gt: 50} } },
 67                                     { "$elemMatch" : { num : 100, color: "green" } }
 68                                   ] }
 69                    } )
 70  */
 71 @org.junit.Test
 72 public void testelemMatch(){
 73     Criteria c=new Criteria();
 74     Query qm=new Query();
 75     qm.addCriteria(c.elemMatch(Criteria.where("UserName").is("lzh1").and("Password").is(100)));//括号里的字符串是数据字段名称
 76     DBObject s=qm.getQueryObject();//转换成DBObject为了更方便获取得到字符串命令
 77     String n=s.toString();
 78     Query query=Query.query(Criteria.where("user").all(s));
 79     try{
 80         List<UserList>userlist=mongoTemplate.find(query, UserList.class);System.out.println("list大小"+userlist.size()+"\n"+userlist);
 81     }catch(Exception e){e.printStackTrace();}
 82 }
 83 /**
 84  * and操作,相当于sql语句中的and
 85  */
 86 @org.junit.Test
 87 public void testAnd(){
 88     Query query=Query.query(Criteria.where("UserName").is("00").and("Password").is("123"));
 89     try{
 90
 91         List<User>userlist=mongoTemplate.find(query, User.class);System.out.println("list大小"+userlist.size()+"\n"+userlist);
 92     }catch(Exception e){e.printStackTrace();}
 93 }
 94 /**
 95  * 该方法是使用regex()(正则表达式)方法以及or(或)操作查询数据
 96  * 相当于db.user.find({ "UserName" : "00", "$or" : [{ "Password" : /lz/ }] });
 97  */
 98 @org.junit.Test
 99 public void testor(){
100
101     try{
102     Criteria c=Criteria.where("Password").regex("lz");//这里的正则表达式是/lzh/
103         Query query=Query.query(Criteria.where("UserName").is("00").orOperator(c));
104
105         List<User>userlist=mongoTemplate.find(query, User.class);
106         System.out.println("list大小"+userlist.size()+"\n"+userlist);
107     }catch(Exception e){e.printStackTrace();}
108 }
109 /**使用正则表达式查询
110  * Criteria.where("Password").regex(re, options);其中re,option 都是字符串,
111  * option可以选值为:i,m,x,s   i表示不区分大小写,m表示能使用^以及$等正则表达式来识别数据库中使用\n换行的每一行开始字符以及字符。
112  * x
113  * 具体原文介绍http://docs.mongodb.org/manual/reference/operator/query/regex/
114  */
115 @org.junit.Test
116 public void testRegex(){
117
118     try{
119         Criteria c=Criteria.where("Password").regex("lz","i");//这里的正则表达式是/lzh/
120
121             Query query=Query.query(c);
122
123             List<User>userlist=mongoTemplate.find(query, User.class);
124             System.out.println("list大小"+userlist.size()+"\n"+userlist);
125         }catch(Exception e){e.printStackTrace();}
126 }
127 }
时间: 2024-08-02 19:18:53

springdata整合mongodb一些方法包括or,and,regex等等《有待更新》的相关文章

spark/hadoop整合mongodb

MongoDB是一个文档型数据库,它可以方便的应用于大多数语言,其次是实现是C++,根据相关人员的测试证明mongodb的查询性能要好于现在市面上好多nosql数据库,相关的测试连接如下: http://www.kuqin.com/shuoit/20140928/342398.html 下面简单介绍mongodb: 一.Mongodb特性 1.模式自由,支持动态查询.完全索引,可轻易查询文档中内嵌的对象及数组. 2.面向集合存储,易存储对象类型的数据,包括文档内包括文档内嵌对象及数组. 3.高效

springBoot+SpringData 整合入门

SpringData概述 SpringData :Spring的一个子项目.用于简化数据库访问,支持NoSQL和关系数据存储.其主要目标是使用数据库的访问变得方便快捷. SpringData 项目所支持NoSQL存储: MongoDB(文档数据库) Neo4j(图形数据库) Redis(键/值存储) Hbase(列族数据库) SpringData 项目所支持的关系数据存储技术: JDBC JPA Spring Data : 致力于减少数据访问层 (DAO) 的开发量. 开发者唯一要做的,就只是声

Spring Boot 从入门到精通(十)整合 MongoDB 实现读写非关系型数据库

来源:素文宅博客 地址:https://blog.yoodb.com/yoodb/article/detail/1578 MongoDB是一个开源的NoSQL文档数据库.它可以存储多种数据结构,类似JSON的BSON,可以存储复杂数据类型. Spring Boot为使用MongoDB提供了很多便利,包括spring-boot-starter-data-mongodb 'Starter POM'.本文学习一下Spring Boot中整合MongoDB数据库,来实现以不同方法读写MongoDB数据库

nodejs+express4.0+mongodb安装方法 for Linux, Mac

废话不多说 1:下载nodejs包 下载地址如下:http://www.nodejs.org/download/ 下载source code版本需要解压后到其目录执行./configure,然后make && make install; 而binaries的tar.gz解压后即可. 2:下载mongodb 下载地址如下:http://www.mongodb.org/downloads 而binaries的tar.gz解压后即可. 3:配置环境变量 cd ~:此目录下有个.bash_prof

spring项目整合mongodb进行开发

spring项目整合mongodb进行开发: MongoDB的性能指标: 100个并发,插入550万条记录的平均吞吐量:大约4100条/秒 MONGODB实际上是一个内存数据库,先将数据保存到内存,然后再写入磁盘中 1.官网下载mongodb. https://www.mongodb.org/downloads 2.redhat上安装好mongodb 3.

SpringMVC整合MongoDB

首先,在pom文件中新增spring-data-mongodb的依赖: <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>1.8.1.RELEASE</version></dependency>然后,新建spring-mongo.xml &l

spring MVC 整合mongodb

Spring Mongodb 目录 1 SPRING整合MONGODB 1 1.1 环境准备 1 1.2 包依赖 1 1.3 配置 2 2 案列 5 2.1 SPRING MVC整合MONGODB代码案例 5 1 Spring整合Mongodb 1.1 环境准备 1. mongodb官网 http://www.mongodb.org/,下载mongodb安装包和mongodb的java驱动包. mongodb安装包(下载地址http://www.mongodb.org/downloads).Mo

jQuery返回顶部的两种方法(包括go-top.js)

jQuery实现网页"返回顶部"的功能,相信见到这种效果已经不稀奇了吧;那究竟如何实现呢?方法还是挺多了,先介绍两种简单的: 第一种,只使用jquery插件来实现,下面是一个完整的代码例子,有兴趣的自己摸索吧:前端UI分享 .代码   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transi

Python删除mongodb数据库和用户,查看Python操作mongodb的方法

#!/usr/bin/env python #coding:utf-8 from pymongo import MongoClient client = MongoClient('192.168.6.243', 27017) db=client['admin'] db.authenticate('root','123456') #help(db) #查看python操作mongodb的方法 for i in range(2,900): try: db = client['s%s' % i] db