部分正则表达式:

i:忽略大小写

m:多行查找

x:设置 x 选项后,正则表达式中的非转义的空白字符将被忽略  

s:允许点字符(即.)匹配包括换行符在内的所有字符。

w:匹配包括下划线的任何单词字符。类似但不等价于“[A-Za-z0-9_]”,这里的"单词"字符使用Unicode字符集。

查询 dev 集合中 title 字段以'S'开头的数据

db.dev.find({title:/^S/});

db.dev.find({title:{$regex:/^S/}}) 

查询 dev 集合中 title 字段以'g'结尾的数据

db.stu.find({title:/g$/});

db.stu.find({title:{$regex:/g$/}}); 

查询 dev 集合中 title 字段含有'g'的数据

db.stu.find({title:/ing/});

db.stu.find({title:{$regex:/ing/}});

查询 dev 集合中 title 字段s开头且忽略大小写的数据

db.dev.find({title:/^S/i});

db.dev.find({title:{$regex:/^S/i}});

db.dev.find({title:{$regex:/^S/, $options:"i"}});

查询 dev 集合中 title 字段已'S'开头、'g'结尾的数据

db.dev.find({title:/^S.*g$/});

db.dev.find({title:{$regex:/^z.*n$/}});

查询 dev 集合中 title 字段以'S''t'开头的数据

db.dev.find({title:{$in:[/^S/, /^t/]}});

查询 dev 集合中 title 字段不以'S'开头的数据

db.dev.find({title:{$not:/^S/}}); 

查询 dev 集合中 title 字段不以'S''t'开头的数据

db.stu.find({title:{$nin:[/^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.aggregate([{$match:{size:{$ne:null}}},{$project:{_id:0,title:1,New_Size:{$add:["$si

ze",1]}}}])

减:

db.dev.aggregate([{$match:{size:{$ne:null}}},{$project:{_id:0,title:1,New_Size:{$subtract:[

"$size",1]}}}])

 

db.dev.aggregate([{$match:{size:{$ne:null}}},{$project:{_id:0,title:1,New_Size:{$multiply:

["$size",2]}}}]) 

db.dev.aggregate([{$match:{size:{$ne:null}}},{$project:{_id:0,title:1,New_Size:{$divide:["

$size",2]}}}])

取余 

db.dev.aggregate([{$match:{size:{$ne:null}}},{$project:{_id:0,title:1,New_Size:{$mod:["$s

ize",2]}}}])

日期处理

俩种插入日期的方式:

方式一:

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")}})

显示年月日:

{$year:"$birth"}:年份
{$month:"$birth"}:月份
{$dayOfMonth:"$birth"}:日期
db.develop.aggregate([{$match:{ame:'admin'}},{$project:{年份:{$year:'$birth'},月份:{$month:'$birth'},日:{$dayOfMonth:'$birth'}}}])

显示时分秒毫秒:

{$hour:"$birth"}:小时
{$minute:"$birth"}:分钟
{$second:"$birth"}:秒
{$millisecond:"$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)的更多相关文章

  1. java 连接 mongodb 及使用

    MongoDB是当今非常流行的一款NoSQL数据库,本文介绍如何使用MongoDB的Java驱动来操作MongoDB. 一.引入MongoDB Java Driver包 如果需要操作MongoDB的J ...

  2. Java 连接MongoDB

    1.驱动 通过java连接MongoDB需要一个java版的驱动 下载地址:http://mongodb.github.io/mongo-java-driver/ 2.连接MongoDB 通过 com ...

  3. java连接mongodb数据库

    最近毕设需要用到这个数据库.然而又不会,没办法,只能上网学习学习. 记录一下java连接mongodb数据库的简单方法.这里只是记录一下学习.熟悉一下CURD方法. 但是毕业用到的是SpringBoo ...

  4. mongodb在Windows安装配置及遇到的问题、java连接测试

    一.安装 1.访问mongodb的官网http://www.mongodb.org/downloads下载64bit的包,我下载的是mongodb-win32-x86_64-2008plus-ssl- ...

  5. java连接MongoDB查询导出为excel表格

    背景 因为项目需求.每一个星期须要统计每一个公众号7天的訪问数,月底就须要统计一个月的訪问数,40多个公众号.每次手动统计都须要花费1个小时,总之是一项无技术耗时耗神的手工活. 于是.想写个程序来统计 ...

  6. java连接mongodb的一个奇葩问题及奇葩解决方式

    昨天在eclipse中编写代码,本来连接mongodb进行各项操作都是正常的,但是有一会儿突然之间就没法连接了,还一直抱错,错误如下: 信息: Cluster created with setting ...

  7. Java连接MongoDB报错“java.lang.IllegalArgumentException: clusterListener can not be null”的解决办法

    我使用的MongoDB版本是3.6.9. 下面是一个很基础的示例代码,功能就是连接MongoDB: package com.zifeiy.snowflake.handle.etl.mongodb; i ...

  8. Java 连接MongoDB集群的几种方式

    先决条件 先运行mongodb肯定是必须的,然后导入以下包: import com.mongodb.MongoClient; import com.mongodb.MongoClientURI; im ...

  9. MongoDB Java连接---MongoDB基础用法(四)

    MongoDB 连接 标准 URI 连接语法: mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN ...

随机推荐

  1. python——自行实现sorted函数

    仿照内建函数sorted,自行实现一个sort函数,能够为列表进行排序 看下面实例的前提是掌握 0.掌握sorted函数的用法.1.函数基本概念.2.函数是如何传参的.3.掌握三元表达式.4.掌握内建 ...

  2. java笔试面试第一天

    好久未曾启用我的博客,最近来上海找工作,想将笔试面试的过程做个记录,毕竟有总结才有提高嘛.今天算是笔试面试正式开始第一天吧,以下就是我的笔试总结(没有原题了,只有知识点): 笔试题1:java sta ...

  3. 网站搭建 - 虚拟机的安装 - Linux 本地网站搭建第一步

    搭建网站-1-域名申请参见公众号 生物信息系统(swxxxt) 搭建网站-域名绑定见稍后的一章,就是直接点解析,然后就完事了,可以不看的. 首先准备材料: 先装虚拟机,会要求重启,那就重启吧,安装界面 ...

  4. nyoj 62-笨小熊(以对应数组中的ASC位 + 1)

    62-笨小熊 内存限制:64MB 时间限制:2000ms Special Judge: No accepted:15 submit:43 题目描述: 笨小熊的词汇量很小,所以每次做英语选择题的时候都很 ...

  5. 用maven创建web项目(spring Mvc)

    用maven创建web项目(spring Mvc) 1.打开cmd进入到你要创建maven项目的目录下: 2.输入以下命令.然后根据提示输入相应的groupId.artifactId.version: ...

  6. mysql 导出 导入

    一.导出 windows下 切换到mysql安装目录bin目录下 导出 数据库lz_garden 下的 所有表结构 到d盘并命名为lz_garden.sql: D:\dev\MySQL\MySQL S ...

  7. 用例图浅谈以及OOA再到情景分析的面向对象电梯的设计(慕课东北大学)面向对象设计思维模式

    上班初期还不太适应,平时学习进度也跟不上,节奏慢下来会有时间更新的了. Diagram  这边以学生课程报名系统为例    这就是一种简单的用例图 用例图可以给读者提供的信息非常丰富,但是缺点是都是概 ...

  8. 红帽学习记录[RHCE] 防火墙与网络合作

    目录 防火墙 基本介绍 firewalld 区域zone 管理firewalld 关于富规则 定义 firewalld操作富规则的命令 语法 常用的示例 网络合作 链路聚合 网络组的文件 网络组命令 ...

  9. 2019-9-17:渗透测试,基础学习,apache初识,mysql初识等笔记

    python -m SimpleHTTPServer gedit 文本编辑器 apache2 默认配置文件目录:/etc/apache2/apache2默认首页源码: /var/www/html my ...

  10. python 面向对象的基本概念(未完待续)

    面向对象编程简称OOP(Object-oriented-programming),是一种程序设计思想. 面向过程编程(如C语言)指一件事该怎么做,面向对象编程(如Java.python)指一件事该让谁 ...