MongoDB第三天(正则,管道,聚合,字符串,算术,日期,java连接MongoDB)
部分正则表达式:
i:忽略大小写
m:多行查找
x:设置 x 选项后,正则表达式中的非转义的空白字符将被忽略。
s:允许点字符(即.)匹配包括换行符在内的所有字符。
w:匹配包括下划线的任何单词字符。类似但不等价于“[A-Za-z0-9_]”,这里的"单词"字符使用Unicode字符集。
|
查询 dev 集合中 title 字段以'S'开头的数据
查询 dev 集合中 title 字段以'g'结尾的数据
查询 dev 集合中 title 字段含有'g'的数据
查询 dev 集合中 title 字段以’s’开头且忽略大小写的数据
查询 dev 集合中 title 字段已'S'开头、'g'结尾的数据
查询 dev 集合中 title 字段以'S'或't'开头的数据
查询 dev 集合中 title 字段不以'S'开头的数据
查询 dev 集合中 title 字段不以'S'或't'开头的数据
|
Mongodb的聚合操作
语法格式:
db.COLLECTION_NAME.aggregate([{$group:{_id:"$分组键名","$分组键名",.....,别名:{聚合运算:"$运算列"}}},{条件筛选:{键名:{运算条件:运算值}}}])
$match:条件筛选,经常和$group搭配使用,在group前面相当于,MySQL中的where在group的后面,相当于having。
$group:分组
$sort:相当于order by排序 1表示顺序,-1表示倒叙
$sum:表示求和
$unwind:数组拆分
管道操作:
当前的查询结果,会被下一条命令作为参数。类似传递,且管道操作时可以重复的,也是顺序执行
管道操作符:$match、$group、$sort、$limit、$skip、$unwind
管道操作符,只能用于计算当前聚合管道的文档,不能处理其它的文档。
实现聚合投影约束
$project 操作符:我们可以使用$project 操作符做聚合投影操作。
db.develop.aggregate([{$project:{_id:0,name:1,ame:1,age:1,title:1,time:1}}])

字符串操作
toLower:小写
toUpper:大写
db.develop.aggregate([{$project:{_id:0,Name:{$toUpper:'$name'}}}])

$Substr:只能截取匹配ascll码的数据,$substrCP 可以截取中文和字符串
加法 乘法 除法 取模 :
|
加:
减:
乘
除
取余
|
日期处理
俩种插入日期的方式:
方式一:
db.dev.insert({time:new Date("2018-05-01T14:20:23Z")})
new Date("2018-05-01T14:20:23Z"):创建时间对象,日期格式为 yyyy-MM-ddThh:mm:ss
方式二:
db.dev.insert({time:ISODate("2019-06-01T16:30:00Z")})
ISODate("2019-06-01T16:30:00Z"):
查询日期的方式
第一种:
db.dev.find({time:{$eq:new Date("2018-05-01T14:20:23")}})
第二种:
db.dev.find({time:{$gt:new Date("2018-04-01")}})
第三种:
db.dev.find({time:{$eq:ISODate("2018-05-01T14:20:23")}})
显示年月日:
db.develop.aggregate([{$match:{ame:'admin'}},{$project:{年份:{$year:'$birth'},月份:{$month:'$birth'},日:{$dayOfMonth:'$birth'}}}])

显示时分秒毫秒:
db.develop.aggregate([{$match:{ame:'admin'}},{$project:{年份:{$year:'$birth'},月份:{$month:'$birth'},日:{$dayOfMonth:'$birth'},时:{$hour:'$birth'},分:{$minute:'$birth'},秒:{$millisecond:'$birth'}}}])

java连接MongoDB数据的方式
直连:
package com.bjsxt.mongodbdemo;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
public class MongoDBUtil {
private static MongoClient client=null;
static {
if (client==null){
client=new MongoClient("192.168.181.132",27017);
}
}
//获取MongoDB数据库
public static MongoDatabase getDatebase(String dbName){
return client.getDatabase(dbName);
}
//获取MongoDB集合
public static MongoCollection getCollection(String dbName,String collName){
MongoDatabase database=getDatebase(dbName);
return database.getCollection(collName);
}
}
直连认证:
package com.bjsxt.mongodbdemo;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import java.util.Arrays;
/**
* 创建MongoDB拦截-用户认证
*/
public class MongoDBAuthUtil {
private static MongoClient client=null;
static {
if (client==null){
//创建一个用户封装认证信息
MongoCredential credential = MongoCredential.createCredential("bjsxt", "develop", "bjsxt".toCharArray());
//封装MongoDB的地址与端口
ServerAddress address=new ServerAddress("192.168.181.132",27017);
client=new MongoClient(address, Arrays.asList(credential));
}
}
//获取MongoDB数据库
public static MongoDatabase getDatebase(String dbName){
return client.getDatabase(dbName);
}
//获取MongoDB集合
public static MongoCollection getCollection(String dbName, String collName){
MongoDatabase database=getDatebase(dbName);
return database.getCollection(collName);
}
}
池连:
package com.bjsxt.mongodbdemo;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import java.util.Arrays;
/**
* 池连
*/
public class MongoDBPoolUtil {
private static MongoClient client=null;
static {
if (client==null){
MongoClientOptions.Builder builder=new MongoClientOptions.Builder();
builder.connectionsPerHost(10);//每个地址的最大连接数
builder.connectTimeout(5000);//连接超时时间
builder.socketTimeout(5000);//读写操作超时时间
//封装MongoDB的地址与端口
ServerAddress address=new ServerAddress("192.168.181.132",27017);
client=new MongoClient(address, builder.build());
}
}
//获取MongoDB数据库
public static MongoDatabase getDatebase(String dbName){
return client.getDatabase(dbName);
}
//获取MongoDB集合
public static MongoCollection getCollection(String dbName, String collName){
MongoDatabase database=getDatebase(dbName);
return database.getCollection(collName);
}
}
池连认证:
package com.bjsxt.mongodbdemo;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
public class MongoDBPoolAuthUtil {
private static MongoClient client=null;
static {
if (client==null){
MongoClientOptions.Builder builder=new MongoClientOptions.Builder();
builder.connectionsPerHost(10);//每个地址的最大连接数
builder.connectTimeout(5000);//连接超时时间
builder.socketTimeout(5000);//读写操作超时时间
//创建一个用户封装认证信息
MongoCredential credential = MongoCredential.createCredential("bjsxt", "admin", "bjsxt".toCharArray());
//封装MongoDB的地址与端口
ServerAddress address=new ServerAddress("192.168.181.132",27017);
client=new MongoClient(address,credential,builder.build());
}
}
//获取MongoDB数据库
public static MongoDatabase getDatebase(String dbName){
return client.getDatabase(dbName);
}
//获取MongoDB集合
public static MongoCollection getCollection(String dbName, String collName){
MongoDatabase database=getDatebase(dbName);
return database.getCollection(collName);
}
//创建集合
public static void createCollection(String dbName,String collName){
MongoDatabase database=getDatebase(dbName);
database.createCollection(collName);
}
//删除集合
public static void dropCollection(MongoCollection collection){
collection.drop();
}
}
MongoDB第三天(正则,管道,聚合,字符串,算术,日期,java连接MongoDB)的更多相关文章
- java 连接 mongodb 及使用
MongoDB是当今非常流行的一款NoSQL数据库,本文介绍如何使用MongoDB的Java驱动来操作MongoDB. 一.引入MongoDB Java Driver包 如果需要操作MongoDB的J ...
- Java 连接MongoDB
1.驱动 通过java连接MongoDB需要一个java版的驱动 下载地址:http://mongodb.github.io/mongo-java-driver/ 2.连接MongoDB 通过 com ...
- java连接mongodb数据库
最近毕设需要用到这个数据库.然而又不会,没办法,只能上网学习学习. 记录一下java连接mongodb数据库的简单方法.这里只是记录一下学习.熟悉一下CURD方法. 但是毕业用到的是SpringBoo ...
- mongodb在Windows安装配置及遇到的问题、java连接测试
一.安装 1.访问mongodb的官网http://www.mongodb.org/downloads下载64bit的包,我下载的是mongodb-win32-x86_64-2008plus-ssl- ...
- java连接MongoDB查询导出为excel表格
背景 因为项目需求.每一个星期须要统计每一个公众号7天的訪问数,月底就须要统计一个月的訪问数,40多个公众号.每次手动统计都须要花费1个小时,总之是一项无技术耗时耗神的手工活. 于是.想写个程序来统计 ...
- java连接mongodb的一个奇葩问题及奇葩解决方式
昨天在eclipse中编写代码,本来连接mongodb进行各项操作都是正常的,但是有一会儿突然之间就没法连接了,还一直抱错,错误如下: 信息: Cluster created with setting ...
- Java连接MongoDB报错“java.lang.IllegalArgumentException: clusterListener can not be null”的解决办法
我使用的MongoDB版本是3.6.9. 下面是一个很基础的示例代码,功能就是连接MongoDB: package com.zifeiy.snowflake.handle.etl.mongodb; i ...
- Java 连接MongoDB集群的几种方式
先决条件 先运行mongodb肯定是必须的,然后导入以下包: import com.mongodb.MongoClient; import com.mongodb.MongoClientURI; im ...
- MongoDB Java连接---MongoDB基础用法(四)
MongoDB 连接 标准 URI 连接语法: mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN ...
随机推荐
- 为什么我加了索引,SQL执行还是这么慢(一)?
在MySQL中,有一些语句即使逻辑相同,执行起来的性能差异确实极大的. 先抛出一个结论:如果想使用索引树搜索功能,就不能使用数据库函数来处理索引字段值,而是在不改变索引字段值的同时,自己通过SQL语句 ...
- html5 微信真机调试方法vConsole
html5 微信真机调试方法 vConsolehttps://blog.csdn.net/weixin_36934930/article/details/79870240
- tomcat 日志(2)
一.Log4j在Tomcat中的配置说明(tomcat6) 学习Java中,从简单的开始.如果需要文中提到的文件可以找我要. http://www.apache.org/dist/tomcat/tom ...
- Javascript模块化开发2——Gruntfile.js详解
一.grunt模块简介 grunt插件,是一种npm环境下的自动化工具.对于需要反复重复的任务,例如压缩.编译.单元测试.linting等,自动化工具可以减轻你的劳动,简化你的工作.grunt模块根据 ...
- iOS蓝牙--CoreBluetooth基本使用
蓝牙使用步骤: 1. 扫描外设 2. 连接外设 3. 连上外设后,获取指定外设的服务 4. 获取服务后,遍历服务的特征,得到可读,可写等特征,然后与中心管理者进行数据交互 附上代码 一:导入框架 #i ...
- thinkphp分页样式css代码
<style type="text/css"> .Pagination a:hover,.current{background-color: #f54281;borde ...
- 论文阅读:Face Recognition: From Traditional to Deep Learning Methods 《人脸识别综述:从传统方法到深度学习》
论文阅读:Face Recognition: From Traditional to Deep Learning Methods <人脸识别综述:从传统方法到深度学习> 一.引 ...
- PostGIS 查询点在线上
1.缓冲区法:查询数据库fm表里,与坐标(12989691.512 4798962.444)相距0.0001米的数据(3857坐标系) ),),),),geom) ; --如果坐标系统一,不用tran ...
- 【NHOI2018】找素数
[题目描述] 素数又称质数,是指一个大于 1 的正整数,如果除了 1 和它本身以外,不能再被其它的数整除,例如:2.3.5.97 等都是素数.2 是最小的素数. 现在,给你 n 个数字,请你从中选取一 ...
- Spring事务笔记
1:在同一个类中,如果A方法有事务,B方法也有事务(propagation = Propagation.REQUIRES_NEW),如下代码所示: @Override@Transactionalpub ...