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 ...
随机推荐
- docker搭建本地registry
第一步:拉取registry镜像 [root@localhost iso]# docker image pull registry Using default tag: latest latest: ...
- 本周授课内容:http,https,Tomcat,servlet
https:https是基于安全套接字的http协议,也可以理解为是http+ssl/tls(数字证书)的组合 http和https的区别: HTTP 的 URL 以 http:// 开头,而 HTT ...
- jsp页面不乱码,外部引用的js弹出对话框乱码
今天在做一个课程设计的时候,写到一个界面注册,在用js判断数据的正确性时,碰到了一个js弹出框的乱码问题.在网上找寻了很久,也找了很多博客看,但是发现怎么样都不能解决我的问题,下面给出几个比较经典的解 ...
- 小白学 Python(24):Excel 基础操作(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 网络权重初始化方法总结(下):Lecun、Xavier与He Kaiming
目录 权重初始化最佳实践 期望与方差的相关性质 全连接层方差分析 tanh下的初始化方法 Lecun 1998 Xavier 2010 ReLU/PReLU下的初始化方法 He 2015 for Re ...
- runlevel init
init概念存在于cnetos7以下,配置文件/etc/inittab init 以及 文本和图形界面切换(可以用ctrl+alt+n 或者 init3 5切换,不是重启切) 命令init N 0 关 ...
- D^3ctf两道 pwn
这次 的D^3ctf 又是给吊打 难顶... 所以题都是赛后解出来的,在这感谢Peanuts师傅 unprintableV 看看保护: 看看伪代码,其实代码很少 void __cdecl menu() ...
- 三维目标检测论文阅读:Deep Continuous Fusion for Multi-Sensor 3D Object Detection
题目:Deep Continuous Fusion for Multi-Sensor 3D Object Detection 来自:Uber: Ming Liang Note: 没有代码,主要看思想吧 ...
- ASP.NET Core MVC+EF Core项目实战
项目背景 本项目参考于<Pro Entity Framework Core 2 for ASP.NET Core MVC>一书,项目内容为party邀请答复. 新建项目 本项目开发工具为V ...
- 剑指Offer-29.最小的K个数(C++/Java)
题目: 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 分析: 最先想到的是将数组升序排列,返回前k个元素.不过排序的话效率 ...