MongDB之各种查询操作
接口IMongDaoFind:
package com.net.test.mongdb.dao;
public interface IMongDaoFind {
public void findUsers();
public void findUserByName(String name);
public void findUserLikeName(String name);
public void findUserPs();
public void findUserAndOperator();
public void findUserOrOperator();
public void findUserOrOperator2();
}
实现类MongDaoFindImp:
package com.net.test.mongdb.dao.imp; import java.util.ArrayList;
import java.util.List; import javax.annotation.Resource; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Repository; import com.net.test.mongdb.dao.IMongDaoFind;
import com.net.test.mongdb.entity.User;
import com.net.test.mongdb.entity.UserP;
import com.net.test.mongdb.entity.UserPsg; /**
* @author ***
* @Time:2017年8月4日 上午10:40:33
* @version 1.0
* Function: TODO
*/
@Repository
public class MongDaoFindImp implements IMongDaoFind{ @Resource
protected MongoTemplate mongoTemplate; /**
* @description 查询所有用户信息
*/
@Override
public void findUsers()
{
List<User> list = mongoTemplate.findAll(User.class);
for(User user : list)
{
System.out.println("name :" + user.getName() + " , age :" + user.getAge() + " , sex :" + user.getSex());
}
} /**
* @description 根据用户名,单条查询用户信息.如果有重复名称,默认查询第一条
* @param name
*/
public void findUserByName(String name)
{
Query query = Query.query(Criteria.where("name").is(name));
User user = mongoTemplate.findOne(query,User.class);
System.out.println("name :" + user.getName() + " , age :" + user.getAge() + " , sex :" + user.getSex());
} /**
* @description 模糊查询
* @param name
*/
@Override
public void findUserLikeName(String name)
{
Query query = new Query();
query.addCriteria(Criteria.where("name").regex(name)); List<User> list = mongoTemplate.find(query, User.class);
for(User user : list)
{
System.out.println("name :" + user.getName() + " , age :" + user.getAge() + " , sex :" + user.getSex());
}
} /**
* @description 表名与pojo不相同进行映射
*/
@Override
public void findUserPs()
{
List<UserP> list = mongoTemplate.findAll(UserP.class, "user");
for(UserP user : list)
{
System.out.println("name :" + user.getName() + " , age :" + user.getAge() +
" , sex :" + user.getSex() + " , hobby :" + user.getHobby());
}
} /**
* @description 测试多条件进行查询,测试and连接符
*/
@Override
public void findUserAndOperator() { Query query = new Query();
Criteria c = new Criteria();
query.addCriteria(c.andOperator(Criteria.where("name").regex("车"),
Criteria.where("age").is(18))); List<User> list = mongoTemplate.find(query, User.class);
for(User user : list)
{
//基础信息
String name = user.getName();
int age = user.getAge();
String sex = user.getSex(); //内置对象
UserPsg psg = user.getPsg(); //内置数组
ArrayList<String> listHobby = (ArrayList<String>) user.getHobby();
StringBuffer bf = new StringBuffer();
if(null != listHobby && listHobby.size() > 0)
{
for(String hobby : listHobby)
{
bf.append(hobby + ",");
}
}else
{
bf.append("");
} System.out.println(
"name : " + name +
", age : " + age +
", sex : " + sex +
", hobby : " + bf.toString() +
", UserPsg : " + psg
);
}
} /**
* @description 测试多条件进行查询,测试平行并列or
*/
@Override
public void findUserOrOperator()
{
Query query = new Query();
Criteria c = new Criteria();
query.addCriteria(c.orOperator(Criteria.where("name").regex("车"),
Criteria.where("age").is(10))); List<User> list = mongoTemplate.find(query, User.class);
for(User user : list)
{
//基础信息
String name = user.getName();
int age = user.getAge();
String sex = user.getSex(); //内置对象
UserPsg psg = user.getPsg(); //内置数组
ArrayList<String> listHobby = (ArrayList<String>) user.getHobby();
StringBuffer bf = new StringBuffer();
if(null != listHobby && listHobby.size() > 0)
{
for(String hobby : listHobby)
{
bf.append(hobby + ",");
}
}else
{
bf.append("");
} System.out.println(
"name : " + name +
", age : " + age +
", sex : " + sex +
", hobby : " + bf.toString() +
", UserPsg : " + psg
);
}
} /**
* @description 测试多条件进行查询,测试包含关系or连接符,此处的or和and有些相似
*/
@Override
public void findUserOrOperator2()
{
Query query = new Query();
query.addCriteria(Criteria.where("name").regex("车").orOperator(Criteria.where("age").is(19))); List<User> list = mongoTemplate.find(query, User.class);
for(User user : list)
{
//基础信息
String name = user.getName();
int age = user.getAge();
String sex = user.getSex(); //内置对象
UserPsg psg = user.getPsg(); //内置数组
ArrayList<String> listHobby = (ArrayList<String>) user.getHobby();
StringBuffer bf = new StringBuffer();
if(null != listHobby && listHobby.size() > 0)
{
for(String hobby : listHobby)
{
bf.append(hobby + ",");
}
}else
{
bf.append("");
} System.out.println(
"name : " + name +
", age : " + age +
", sex : " + sex +
", hobby : " + bf.toString() +
", UserPsg : " + psg
);
}
}
}
MongDB之各种查询操作的更多相关文章
- [C#] 进阶 - LINQ 标准查询操作概述
LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...
- MongoDB的查询操作
1. 前言 在这篇博文中,我们将学习如何查询mongoDB中的数据.当我们把数据存储在mongoDB以后,我们需要把数据查询出来.毕竟CRUD操作中,查询操作在我们系统中是我们应用比较频繁的操作.我们 ...
- Django 1.10 中文文档------3.2.2 查询操作making queries
3.2.2 查询操作 6.15章节包含所有模型相关的API解释. 后面的内容基于如下的一个博客应用模型: from django.db import models class Blog(models. ...
- InfluxDB学习之InfluxDB的HTTP API查询操作
在 InfluxDB学习 的上一篇文章:InfluxDB学习之InfluxDB的HTTP API写入操作 中,我们介绍了使用InfluxDB的HTTP API进行数据写入操作的过程,本文我们再来介绍下 ...
- mongDB-- 3. 查询操作
1. 准备工作 (1)启动mongo 进入mongo安装目录的bin/ 目录 , ./mongod (2)启动mongo客户端 ./mongo (3) 查看所有库 show dbs; (4) 切换到l ...
- .NET LINQ基本查询操作
获取数据源 在 LINQ 查询中,第一步是指定数据源.像在大多数编程语言中一样,在 C# 中,必须先声明变量,才能使用它.在 LINQ 查询中,最先使用 from 子句的目的是引入数据源 ( ...
- MongoDB各种查询操作详解
这篇文章主要介绍了MongoDB各种查询操作详解,包括比较查询.关联查询.数组查询等,需要的朋友可以参考下 一.find操作 MongoDB中使用find来进行查询,通过指定find的第一个参数可 ...
- MongoDB查询操作限制返回字段的方法
这篇文章主要介绍了MongoDB查询操作限制返回字段的方法,需要的朋友可以参考下 映射(projection )声明用来限制所有查询匹配文档的返回字段.projection以文档的形式列举结果集中 ...
- C#参数化执行SQL语句,防止漏洞攻击本文以MySql为例【20151108非查询操作】
为什么要参数化执行SQL语句呢? 一个作用就是可以防止用户注入漏洞. 简单举个列子吧. 比如账号密码登入,如果不用参数, 写的简单点吧,就写从数据库查找到id和pw与用户输入一样的数据吧 sql:se ...
随机推荐
- Hadoop完全分布式环境下,DataNode进程正常启动,但是网页上不显示DataNode节点
Hadoop完全分布式环境下,上传文件到hdfs上时报错: // :: WARN hdfs.DFSClient: DataStreamer Exception org.apache.hadoop.ip ...
- Linux与DOS的常用命令比较
命令类型 DOS Linux DOS示例 Linux示例 复制文件 copy cp copy c:\teacher1\file1 d:\tmp cp /home/teacher1/file1 /t ...
- SpringBoot | 第八章:统一异常、数据校验处理
前言 在web应用中,请求处理时,出现异常是非常常见的.所以当应用出现各类异常时,进行异常的捕获或者二次处理(比如sql异常正常是不能外抛)是非常必要的,比如在开发对外api服务时,约定了响应的参数格 ...
- WPF Virtualization
WPF虚拟化技术分为UI 虚拟化和数据虚拟化 第一种方法被称为"UI 虚拟化".支持虚拟化用户界面的控件是足够聪明来创建只显示的是实际在屏幕上可见的数据项目所需的 UI 元素.例如 ...
- JMeter测试TCP服务器遇到的一个奇怪问题
今天工作需要测TCP服务器的压力,因为tsung测试TCP需要写的脚本实在头大,于是换了JMETER来搞压力测试.在实际测试的过程中,遇到了一个很奇怪的问题,就是发了数据包以后,JMeter不停地报5 ...
- 018.Java类加载器
https://www.ibm.com/developerworks/cn/java/j-lo-classloader/ 类加载器(class loader) 用来加载 Java 类到 Java 虚拟 ...
- 使用SpringSession管理分布式系统的会话Session
在我方供应链项目分布式部署的环境下,需要在统一网关服务中管理访问的Session,即无论访问请求路由到哪一个网关服务环境,使用的都是相同的HttpSession,这样就保证了在用户登录之后,能够使用统 ...
- python起源,变量,用户交互,流程语句
1.Python的起源 Python是一门解释型弱类型编程语言. 特点:简单.明确.优雅 2.Python解释器 CPython官方提供的, 内部使用C语言来实现 PyPy,一次性把我们的代码解释成字 ...
- 高德地图 获取sha1
开发版本sha1 控制台输入 cd .android 回车 再输入 keytool -list -v -keystore debug.keystore 回车 输入密钥库口令: andorid ...
- orbbec astra ros
install instruction: https://www.ncnynl.com/archives/201703/1444.html problem: [ERROR] [1481169521.4 ...