MongoDB聚合查询
本文是以下两篇引用的博客的从新整理修改而成
零、引用 MongoDB聚合
MongoDB聚合
一、Aggregate 简介db.collection.aggregate()是基于数据处理的聚合管道,每个文档通过一个由多个阶段组成的管道,可以对每个阶段的管道进行分组、过滤等功能,然后经过一系列的处理,输出相应的结果
二、处理示例图
三、特点:
db.collection.aggregate() 可以多个管道,能方便地进行数据的处理
db.collection.aggregate() 使用了MongoDB内置的原生操作,聚合效率非常高,支持类似SQL Group By的操作,而不再需要用户编写自定义的JavaScript例程
每个阶段管道限制为100M的内存。如果一个节点管道超过这个极限,MongoDB将产生一个错误。可以设置allowDiskUse=true 将管道数据写入临时文件,解决这个限制
db.collection.aggregate() 可以作用在分片集合,但结果不能输出在分片集合,MapReduce可以作用在分片集合,结果也可以输出在分片集合
db.collect ...
MongoDB基础查询语法
1. 查询全部1db.users.find()
与SQL对比:
1select * from users
2. 根据条件 = 查询1db.users.find({"age" : 27})
与SQL对比:
1select * from users where age = 27
3. 多条件查询 and1db.users.find({"username":"joe","age":27})
与SQL对比:
1select * from users where useranem = 'joe' and age = 27
4. 返回部分查询结果12db.users.find({},{"username":1,"email":1})db.users.find({},{"username":1,"email&q ...
JDK Composition
JDK版本采用的JDK版本为:查看命令:java -version
123java version "1.8.0_112"Java(TM) SE Runtime Environment (build 1.8.0_112-b15)Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)
JDK文件基本组成
目录及文件
作用
bin/
Java 可执行文件,包括javac,javaw等
db/
Java DB(Apache Derby open source database),可做内嵌数据库
include/
.c,.h文件等Code 用于编译本地方法(native方法),支持JNI和JVMTI接口
jre/
Java Runtime Environment 根目录,用于和操作系统交换(包含很多dll文件)
lib/
Jar文件,为开发提供必要的开发包,如java.*都在rt.jar中
javafx-src.zip ...
单例模式
1. 定义
Ensure a class has only one instance, and provide a global point of access to it.确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
2. 要点
只创建一次
通常将构造器私有化
需注意线程安全
懒加载(lazy loading)
一般不考虑反射(Java反射可以实例化private)
3. 单例模式的种类3.1 饿汉模式
3.1.1 公有的静态final域 12345678public class Singleton_Hungry extends BasePattern { public static final Singleton_Hungry singleton = new Singleton_Hungry(); private Singleton_Hungry() { }}
分析
够简单粗暴
代码清晰表明是个单例
无lazy loading
3.1.2 静态工厂实现
1234567891011pub ...
Java 注解基础知识
1. 概念及作用
1.1 概念
注解即元数据,就是源代码的元数据
注解在代码中添加信息提供了一种形式化的方法,可以在后续中更方便的使用这些数据
Annotation是一种应用于类、方法、参数、变量、构造器及包声明中的特殊修饰符。它是一种由JSR-175标准选择用来描述元数据的一种工具。
1.2 作用
a. 生成文档
b. 跟踪代码依赖性,实现替代配置文件功能,减少配置。如Spring中的一些注解
c. 在编译时进行格式检查,如@Override等
1.3 意义
注解之前,XML被广泛的应用于描述元数据,XML的维护越来越糟糕
在需要紧耦合的地方,比XML该容易维护,阅读更方便
在需要比较多参数设置时,使用xml更方便,而在将某个方法声明为服务时这种紧耦合的情况下,比较适合注解
XML是松耦合的,注解是紧耦合的
对于“XML VS 注解” ,可以google了解一下
对于XML和注解的使用,要具体问题具体分析
Java的annotation没有行为,只能有数据,实际上就是一组键值对而已。通过解析(parse)Class文件就能把一个annotation需要的键值对都找出来
...
Java Object类
Java Object简介
java.lang.Object 在Java中被定义为一个顶级父类
是Java所有类的父类,可以显示或隐式继承
所有类默认继承Object类
数组也继承Object类
Java Object类常用方法1. private方法
registerNatives方法
code
12345private static native void registerNatives();// 初始化时调用 static { registerNatives(); }
说明:
native表明该方法的具体实现是由C/C++代码实现该方法其主要作用是将C/C++中的方法映射到Java中的native方法,实现方法命名的解耦
2. protected方法
finalize方法
code
1protected void finalize() throws Throwable { }
说明:
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。GC清理对象之前所调用的 ...
Java的native关键字及JNI
native关键字native 用法
标记方法为原生函数,也即是这个函数是用C/C++语言实现的,并且被编译成了DLL或so文件,由java调用。native Method: 一个java调用非java代码的接口natvie 可以和除了abstract外的java标识符连用,native即表示这些方法有实现体,而abstract是表示方法无实现体,故不能一起用
native 特点
native 是用java和其他语言进行协作时使用,也就是native修饰的方法不是用java写的
native 的意思是通知操作系统 ,其具体行为由操作系统实现,java只能调用
java 是跨平台的语言,跨平台的同时牺牲了一些对底层的控制,但需要对底层操作时需要其他语言的帮助,此时就用到native
native 与其他java标志符连用时,其意义同非Native Method并无差别
一个native method可以返回任何java类型,包括非基本类型,同样可以进行异常控制
JVM控制调用本地方法的所有细节
含有本地方法的类,可以被继承,native方法可以在子类中被重写
有了本地方法 ...
Hexo安装教程
1 NodeJs安装NodeJs安装
2 Hexo 安装可以参考该链接的作者的文章,介绍的比较详细http://www.jianshu.com/p/465830080ea9
NodeJs安装教程
1.下载NodeJs下载
2. Windows下安装2.1 一路next即可
测试12node -vnpm -v
2.2 windows下配置
安装已增加的环境变量
1C:\Program Files\nodejs\
修改全局设置
12npm config set prefix "D:\nodejs\node_global"npm config set cache "D:\nodejs\node_cache"
增加NODE_PATH
1D:\nodejs\node_global\node_modules
测试
123npm install express -gnoderequire('express')
没有错误,则表示安装成功!
修改镜像地址(加快下载速度)
123npm config set registry https://registry.npm.taobao.org临时镜像npm --registry "http://npm.hacknodejs.com/" install u ...
EditorConfig统一代码风格
定义
简言之,EditorConfig 用来定义代码格式,以实现不同编辑器、不同项目成员之间统一代码风格
目的
帮助开发者在不同的编辑器和IDE之间定义和维护一致的代码风格
如何使用
在响应工程项目的根目录添加.editorconfig文件
当打开一个文件时,EditorConfig插件会在打开文件的目录和其每一级父目录查找.editorconfig文件,直到有一个配置文件root=true。EditorConfig配置文件从上往下读取,并且路径最近的文件最后被读取。匹配的配置属性按照属性应用在代码上,所以最接近代码文件的属性优先级最高。
注意:Windows 用户在项目根目录创建.editorconfig文件,可以先创建.editorconfig.文件,系统会自动重名为.editorconfig。
.editorconfig示例123456789101112131415161718192021222324root = true[*]# Change these settings to your own preferenceindent_style = spaceind ...