MongoDB第四天(操作文档,添加,更新,查询以及对于日期的相关操作)
添加文档:
添加单个文档,多个文档
package com.bjsxt.mongodbdemo;
import com.mongodb.client.MongoCollection;
import org.bson.Document;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class InsertDocument {
MongoCollection collection = MongoDBPoolAuthUtil.getCollection("develop", "devtest");
public static void main(String[] args) {
InsertDocument insert=new InsertDocument();
//insert.insertSingleDocument();
insert.insertManyDocument();
}
/**
* 添加单个文档
*/
public void insertSingleDocument(){
Document document=new Document();
document.append("uname","lisi").append("age",25).append("userdesc","good").append("hobby", Arrays.asList(new String[]{"Music","Movie"}));
collection.insertOne(document);
}
/**
* 添加多个文档
*/
public void insertManyDocument(){
List<Document> documentList=new ArrayList<>();
for (int i=1;i<5;i++){
Document document=new Document();
document.append("uname","zs"+i);
document.append("age",25+i);
document.append("userdesc","prefect");
document.append("hobby", Arrays.asList(new String[]{"美女","Ballgame"}));
documentList.add(document);
}
collection.insertMany(documentList);
}
}
更新文档:
更新单个文档单个键,更新单个文档多个键,更新多个文档单个键,更新多个文档多个键,更新数组
package com.bjsxt.mongodbdemo;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.model.Filters;
import org.bson.Document;
public class UpdateDocument {
MongoCollection collection = MongoDBPoolAuthUtil.getCollection("develop", "devtest");
public static void main(String[] args) {
UpdateDocument update=new UpdateDocument();
//update.updateManyKeyDocument();
//update.updateManyDocumentSingleKey();
//update.updateManyDocumentManyKey();
// update.updateSingleDocumentArray();
update.updateManyDocumentArray();
}
/**
* 更新单个文档单个键
*/
public void updateSingleKeyDocument(){
collection.updateOne(Filters.eq("uname","lisi"),new Document("$set",new Document("age",28)));
}
/**
* 更新单个文档多个键
*/
public void updateManyKeyDocument(){
collection.updateOne(Filters.eq("uname","zs1"),new Document("$set",new Document("age",18).append("userdesc","very good")));
}
/**
* 更新多个文档单个键
*/
public void updateManyDocumentSingleKey(){
collection.updateMany(Filters.ne("uname",null),new Document("$set",new Document("userdesc","pretry good")));
}
/**
* 更新多个文档多个键
*/
public void updateManyDocumentManyKey(){
collection.updateMany(Filters.ne("uname",null),new Document("$set",new Document("userdesc","good").append("age",18)));
}
/**
* 更新单个文档的数组
*/
public void updateSingleDocumentArray(){
collection.updateMany(Filters.eq("uname","zs2"),new Document("$push",new Document("hobby","看小电影")));
}
/**
* 更新单个文档的多个数组
*/
public void updateManyDocumentArray(){
collection.updateMany(Filters.ne("uname",null),new Document("$push",new Document("hobby","欣赏小电影")));
}
}
查询文档:
查询全部文档,查询指定文档,查询多个文档(操作符)
package com.bjsxt.mongodbdemo;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.model.Filters;
import org.bson.Document;
import org.bson.types.ObjectId;
import java.util.regex.Pattern;
public class SelectDocument {
MongoCollection collection = MongoDBPoolAuthUtil.getCollection("develop", "devtest");
public static void main(String[] args) {
SelectDocument select=new SelectDocument();
//select.selectAll();
//select.selectById();
//select.selectManytype();
/*select.selectManyin();*/
//select.selectManynin();
//select.selectManyregex();
//select.selectManyand();
//select.selectManyor();
//select.selectManyorand();
select.selectManysort();
}
/**
* 查询所有
*/
public void selectAll(){
FindIterable<Document> iterable = collection.find();
MongoCursor<Document> iterator = iterable.iterator();
while (iterator.hasNext()){
Document doc = iterator.next();
System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+doc.get("hobby"));
}
}
/**
* 根据id查询
*/
public void selectById(){
FindIterable<Document> iterable = collection.find(Filters.eq("_id",new ObjectId("5dc0d6ca614f6b0a0c1915e3")));
MongoCursor<Document> iterator = iterable.iterator();
while (iterator.hasNext()){
Document doc = iterator.next();
System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+doc.get("hobby"));
}
}
/**
* 查询多个文档+gt
*/
public void selectManygt(){
FindIterable<Document> iterable = collection.find(Filters.gt("age",17));
MongoCursor<Document> iterator = iterable.iterator();
while (iterator.hasNext()){
Document doc = iterator.next();
System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+doc.get("hobby"));
}
}
/**
* 查询多个文档+type
*/
public void selectManytype(){
FindIterable<Document> iterable = collection.find(Filters.type("age","number"));
MongoCursor<Document> iterator = iterable.iterator();
while (iterator.hasNext()){
Document doc = iterator.next();
System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+doc.get("hobby"));
}
}
/**
* 查询多个文档+in
*/
public void selectManyin(){
FindIterable<Document> iterable = collection.find(Filters.in("uname","zs1","zs2","zs3"));
MongoCursor<Document> iterator = iterable.iterator();
while (iterator.hasNext()){
Document doc = iterator.next();
System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+doc.get("hobby"));
}
}
/**
* 查询多个文档+nin
*/
public void selectManynin(){
FindIterable<Document> iterable = collection.find(Filters.nin("uname","zs1","zs2","zs3"));
MongoCursor<Document> iterator = iterable.iterator();
while (iterator.hasNext()){
Document doc = iterator.next();
System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+doc.get("hobby"));
}
}
/**
* 查询多个文档以z开头2结尾
*/
public void selectManyregex(){
FindIterable<Document> iterable = collection.find(Filters.regex("uname", Pattern.compile("^z.*2$")));
MongoCursor<Document> iterator = iterable.iterator();
while (iterator.hasNext()){
Document doc = iterator.next();
System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+doc.get("hobby"));
}
}
/**
* 查询多个文档姓名是zs1,年龄是18
*/
public void selectManyand(){
FindIterable<Document> iterable = collection.find(Filters.and(Filters.eq("uname","zs1"),Filters.eq("age",18)));
MongoCursor<Document> iterator = iterable.iterator();
while (iterator.hasNext()){
Document doc = iterator.next();
System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+doc.get("hobby"));
}
}
/**
* 查询用户要求 uname 是 zs1,或者 age 是 18
*/
public void selectManyor(){
FindIterable<Document> iterable = collection.find(Filters.or(Filters.eq("uname","zs1"),Filters.eq("age",18)));
MongoCursor<Document> iterator = iterable.iterator();
while (iterator.hasNext()){
Document doc = iterator.next();
System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+doc.get("hobby"));
}
}
/**
* 查询文档中 uname 为 lisi 并且年龄为 18 岁,或者 userdesc 为 good
*/
public void selectManyorand(){
FindIterable<Document> iterable = collection.find(Filters.or(Filters.and(Filters.eq("uname","lisi"),Filters.eq("age",18)),Filters.eq("userdesc","good")));
MongoCursor<Document> iterator = iterable.iterator();
while (iterator.hasNext()){
Document doc = iterator.next();
System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+doc.get("hobby"));
}
}
/**
* 查询文档中 username 是 z 开头的,根据 username 对结果做降序排序。1升序排序, -1 降序排序规则 $sort:{username,-1}
*/
public void selectManysort(){
FindIterable<Document> iterable = collection.find(Filters.regex("uname",Pattern.compile("^z"))).sort(new Document("uname",-1));
MongoCursor<Document> iterator = iterable.iterator();
while (iterator.hasNext()){
Document doc = iterator.next();
System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+doc.get("hobby"));
}
}
}
对于时间的操作
插入主机时间,插入指定时间,根据指定日期去查询数据(操作符:gt,eq,)
package com.bjsxt.mongodbdemo;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.model.Filters;
import org.bson.Document;
import java.util.Date;
public class DateOperation {
MongoCollection collection = MongoDBPoolAuthUtil.getCollection("develop", "devtest");
public static void main(String[] args) {
DateOperation operation=new DateOperation();
//operation.insertDate();
//operation.insertCusDate();
//operation.SelectDate();
operation.SelectDategt();
}
/**
* 插入时间
*/
public void insertDate(){
Document doc=new Document();
doc.put("uname","ww");
doc.put("age",25);
doc.put("userdesc","very good");
doc.put("birth",new Date());
collection.insertOne(doc);
}
/**
* 插入指定日期
*/
public void insertCusDate(){
Date date=DateUtil.stringToDate("yyyy-MM-dd HH:mm:ss","2019-05-01 13:32:13");
Document doc=new Document();
doc.put("uname","zl");
doc.put("age",28);
doc.put("userdesc","very very good");
doc.put("birth",date);
collection.insertOne(doc);
}
/**
* 根据指定日期去查询数据
*/
public void SelectDate(){
Date date=DateUtil.stringToDate("yyyy-MM-dd hh:mm:ss","2019-05-01 13:32:13");
FindIterable iterable = collection.find(Filters.eq("birth", date));
MongoCursor<Document> iterator = iterable.iterator();
while (iterator.hasNext()){
Document doc = iterator.next();
String birth = DateUtil.dateToString("yyyy-MM-dd hh:mm:ss", (Date) doc.get("birth"));
System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+birth);
}
}
/**
* 根据指定日期去查询数据
*/
public void SelectDategt(){
Date date=DateUtil.stringToDate("yyyy-MM-dd hh:mm:ss","2019-01-01 00:00:00");
FindIterable iterable = collection.find(Filters.gt("birth", date));
MongoCursor<Document> iterator = iterable.iterator();
while (iterator.hasNext()){
Document doc = iterator.next();
String birth = DateUtil.dateToString("yyyy-MM-dd hh:mm:ss", (Date) doc.get("birth"));
System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+birth);
}
}
}
聚合操作(各种查询,操作符)
package com.bjsxt.mongodbdemo;
import com.mongodb.client.AggregateIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import org.bson.Document;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class AggregateOperation {
MongoCollection collection = MongoDBPoolAuthUtil.getCollection("develop", "devtest");
public static void main(String[] args) {
AggregateOperation operation = new AggregateOperation();
//operation.selectDocumentAggregateCount();
//operation.selectDocumentAggregateSum();
//operation.selectDocumentAggregateGroupBySum();
//operation.selectDocumentAggregateGroupByWhere();
//operation.selectDocumentAggregateGroupByHaving();
//operation.selectDocumentProject();
//operation.selectDocumentProjectConcat();
//operation.selectDocumentProjectAdd();
operation.selectDocumentProjectDate();
}
/**
* 查询集合中的文档数量
* MongoShell:db.dev.aggregate([{$group:{_id:null,count:{$sum:1}}
*/
public void selectDocumentAggregateCount() {
Document doc = new Document();
doc.put("$sum", 1);
Document count = new Document();
count.put("_id", null);
count.put("count", doc);
Document group = new Document();
group.put("$group", count);
List<Document> list = new ArrayList<>();
list.add(group);
AggregateIterable iterable = collection.aggregate(list);
MongoCursor<Document> iterator = iterable.iterator();
while (iterator.hasNext()) {
Document docu = iterator.next();
System.out.println(docu.get("count"));
}
}
/**
* 需求:查询集合中所有 age 键中的值的总和
* MongoShell:db.dev.aggregate([{$group:{_id:null,totalSize:{$sum:"$size"}}}])
*/
public void selectDocumentAggregateSum() {
Document document = new Document();
document.put("$sum", "$age");
Document sumage = new Document();
sumage.put("_id", null);
sumage.put("sumage", document);
Document group = new Document();
group.put("$group", sumage);
List<Document> list = new ArrayList<>();
list.add(group);
AggregateIterable iterable = collection.aggregate(list);
MongoCursor<Document> iterator = iterable.iterator();
while (iterator.hasNext()) {
Document doc = iterator.next();
System.out.println("sum_age: " + doc.get("sumage"));
}
}
/**
* 需求:对 uname 进行分组,计算每组中的 age 的总和
* MongoShell:db.dev.aggregate([{$group:{_id:"$title",totalSize:{$sum:"$size"}}}])
*/
public void selectDocumentAggregateGroupBySum() {
Document document = new Document();
document.put("$sum", "$age");
Document sumage = new Document();
sumage.put("_id", "$uname");
sumage.put("sumage", document);
Document group = new Document();
group.put("$group", sumage);
List<Document> list = new ArrayList<>();
list.add(group);
AggregateIterable iterable = collection.aggregate(list);
MongoCursor<Document> iterator = iterable.iterator();
while (iterator.hasNext()) {
Document doc = iterator.next();
System.out.println(doc.get("_id") + "\t" + doc.get("sumage"));
}
}
/**
* 需求:查询 devtest 集合有多少文档的 age 大于 20。
* Mongo Shell:db.dev.aggregate([{$match:{size:{$gt:200}}},{$group:{_id:null,totalSize:{$sum:1}}}])
*/
public void selectDocumentAggregateGroupByWhere() {
Document match = new Document();
match.put("$match", new Document("age", new Document("$gt", 20)));
Document sumage = new Document();
sumage.put("$sum", 1);
Document two = new Document();
two.put("_id", null);
two.put("sumage", sumage);
Document group = new Document();
group.put("$group", two);
List<Document> list = new ArrayList<>();
list.add(match);
list.add(group);
AggregateIterable iterable = collection.aggregate(list);
MongoCursor<Document> iterator = iterable.iterator();
while (iterator.hasNext()) {
Document doc = iterator.next();
System.out.println(doc.get("sumage"));
}
}
/**
* 需求:查询 devtest 集合,根据 uname 分组计算出每组的 age 的总和,并过滤掉总和小于 20 的文档。
* Mongo Shell:db.dev.aggregate([{$group:{_id:"$title",totalSize:{$sum:"$size"}}},{$match:{totalSize:{$gt:200}}}])
*/
public void selectDocumentAggregateGroupByHaving() {
Document match = new Document();
match.put("$match", new Document("sumage", new Document("$gt", 20)));
Document sumage = new Document();
sumage.put("$sum", "$age");
Document two = new Document();
two.put("_id", "$uname");
two.put("sumage", sumage);
Document group = new Document();
group.put("$group", two);
List<Document> list = new ArrayList<>();
list.add(group);
list.add(match);
AggregateIterable iterable = collection.aggregate(list);
MongoCursor<Document> iterator = iterable.iterator();
while (iterator.hasNext()) {
Document doc = iterator.next();
System.out.println(doc.get("_id")+"\t"+doc.get("sumage"));
}
}
/**
* 需求:查询 devtest 集合,将数组中的内容拆分显示,并只显示 uname 键与 hobby键的值。
* Mongo Shell:db.dev.aggregate([{$unwind:"$tags"},{$project:{_id:0,tags:"$tags",title:"$title"}}])
*/
public void selectDocumentProject(){
Document unwind=new Document();
unwind.put("$unwind","$hobby");
Document show=new Document();
show.put("_id",0);
show.put("hobby","$hobby");
show.put("uname","$uname");
Document project=new Document();
project.put("$project",show);
List<Document> list=new ArrayList<>();
list.add(unwind);
list.add(project);
AggregateIterable iterable = collection.aggregate(list);
MongoCursor<Document> iterator = iterable.iterator();
while (iterator.hasNext()) {
Document doc = iterator.next();
System.out.println(doc);
}
}
/**
* 需求:查询 devtest 集合,将数组中的内容拆分显示。将 uname 字段和 hobby字段的值拼接为一个完整字符串并在 uname_hooby 字段中显示。
* Mongo Shell:db.dev.aggregate([{$unwind:"$tags"},{$project:{_id:0,Title_Tags:{$concat:["$title","-","$tags"]}}}])
*/
public void selectDocumentProjectConcat(){
Document unwind=new Document();
unwind.put("$unwind","$hobby");
Document concat=new Document();
concat.put("$concat", Arrays.asList(new String[]{"$uname","_","$hobby"}));
Document nh=new Document();
nh.put("_id",0);
nh.put("uname_hooby",concat);
Document project=new Document();
project.put("$project",nh);
List<Document> list=new ArrayList<>();
list.add(unwind);
list.add(project);
AggregateIterable iterable = collection.aggregate(list);
MongoCursor<Document> iterator = iterable.iterator();
while (iterator.hasNext()) {
Document doc = iterator.next();
System.out.println(doc);
}
}
/**
* 需求:查询 devtest 集合中数据,显示 uname 和 age 字段,为 age 字段数据做加 1 操作,显示字段命名为 age。排除那些没有 age 键的文档。
* Mongo Shell:db.dev.aggregate([{$match:{size:{$ne:null}}},{$project:{_id:0,title:1,New_Size:{$add:["$size",1]}}}])
*/
public void selectDocumentProjectAdd(){
Document ne =new Document();
ne.put("$ne",null);
Document age=new Document();
age.put("age",ne);
Document match=new Document();
match.put("$match",age);
Document add=new Document();
add.put("$add",Arrays.asList(new Object[]{"$age",1}));
Document show =new Document();
show.put("_id",0);
show.put("uname",1);
show.put("age",add);
Document project =new Document();
project.put("$project",show);
List<Document> list=new ArrayList<>();
list.add(match);
list.add(project);
AggregateIterable iterable = collection.aggregate(list);
MongoCursor<Document> iterator = iterable.iterator();
while (iterator.hasNext()) {
Document doc = iterator.next();
System.out.println(doc);
}
}
/**
* 需求:查询 devtest 集合查询那些有生日的用户,并按照 YYYY 年 mm 月dd 日 HH:MM:SS 格式显示日期。
* 注意:如果直接在 MongoDB 中做日期的格式化处理,那么是按照表示 UTC时间来处理的,会少 8 个小时。建议在程序中
* 通过 java.util.Date 来做日期的转换。
* Mongo Shell:db.devtest.aggregate([{$match:{userbirth:{$ne:null}}},{$project:{自定义日期格式:{$dateToString:{format:"%Y 年%m 月%d日 %H:%M:%S",date:"$userbirth"}}}}])
*/
public void selectDocumentProjectDate(){
Document ne =new Document();
ne.put("$ne",null);
Document birth=new Document();
birth.put("birth",ne);
Document match=new Document();
match.put("$match",birth);
//{$project:{自定义日期格式:{$dateToString:{format:"%Y 年%m 月%d日 %H:%M:%S",date:"$userbirth"}}}}
Document format=new Document();
format.put("format","%Y 年%m 月%d日 %H:%M:%S");
format.put("date","$birth");
Document dateToString=new Document();
dateToString.put("$dateToString",format);
Document zdy=new Document();
zdy.put("自定义日期格式",dateToString);
Document project=new Document();
project.put("$project",zdy);
List<Document> list=new ArrayList<>();
list.add(match);
list.add(project);
AggregateIterable iterable = collection.aggregate(list);
MongoCursor<Document> iterator = iterable.iterator();
while (iterator.hasNext()) {
Document doc = iterator.next();
System.out.println(doc);
}
}
}
日期的转化工具类
package com.bjsxt.mongodbdemo;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtil {
/**
* date to string
*/
public static String dateToString(String pattern, Date date){
SimpleDateFormat spdf=new SimpleDateFormat(pattern);
String format = spdf.format(date);
return format;
}
/**
* String to date
*/
public static Date stringToDate(String pattern, String date){
SimpleDateFormat spdf=new SimpleDateFormat(pattern);
try {
Date parse = spdf.parse(date);
return parse;
}catch (Exception e){
e.printStackTrace();
}
return null;
}
}
俩种分页操作
package com.bjsxt.mongodbdemo;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import org.bson.Document;
import org.bson.types.ObjectId;
public class SelectDocumentByPage {
MongoCollection collection = MongoDBPoolAuthUtil.getCollection("develop", "devtest");
public static void main(String[] args) {
SelectDocumentByPage docd=new SelectDocumentByPage();
//docd.selectDocumentByPageUseSkipAndLimit(3);
docd.selectDocumentByPageUseCondition(2,2,"5dc0d85c614f6b2730c1d0fd");
}
/**
* 实现分页查询
*/
public void selectDocumentByPageUseSkipAndLimit(int pageIndex){
int page=(pageIndex-1)*2;
Document doc=new Document("age",new Document("$ne",null));
long count = collection.countDocuments(doc);
System.out.println(count);
FindIterable ite = collection.find(doc).limit(2).skip(page);
MongoCursor<Document> iterator = ite.iterator();
while (iterator.hasNext()){
Document docu = iterator.next();
System.out.println(docu);
}
}
/**
* 条件判断实现分页
*/
public void selectDocumentByPageUseCondition(int pageIndex,int pageSize,String lastId){
Document doc=new Document("age",new Document("$ne",null));
long count = collection.countDocuments(doc);
System.out.println(count);
FindIterable ite =null;
if (pageIndex==1){
ite = collection.find(doc).limit(pageSize);
}else {
if (lastId!=null){
doc.append("_id",new Document("$gt",new ObjectId(lastId)));
ite = collection.find(doc).limit(pageSize);
}
}
MongoCursor<Document> iterator = ite.iterator();
while (iterator.hasNext()){
Document docu = iterator.next();
System.out.println(docu);
}
}
}
MongoDB第四天(操作文档,添加,更新,查询以及对于日期的相关操作)的更多相关文章
- MongoDB(五):MongoDB操作文档
本篇文章中将讲解如何使用MongoDB操作文档. 文档的数据结构和JSON基本一致,所有存储在集合中的数据都是BSON格式.BSON是一种类似json格式的一种二进制形式的存储格式,简称Binary ...
- ElasticSearch使用C#操作文档
一.ElasticSearch的.net客户端驱动程序 ElasticSearch官方网站提供了两个.net客户端驱动程序,其中Elasticsearch.Net是一个非常底层且灵活的客户端驱动程序, ...
- lua的io操作文档
2014-09-16~15:26:35 I/O库提供两种不同的方式进行文件处理1.io表调用方式:使用io表,io.open将返回指定文件的描述,并且所有的操作将围绕这个文件描述 io表同样提供三种预 ...
- [转载]MongoDB学习 (四):创建、读取、更新、删除(CRUD)快速入门
本文介绍数据库的4个基本操作:创建.读取.更新和删除(CRUD). 接下来的数据库操作演示,我们使用MongoDB自带简洁但功能强大的JavaScript shell,MongoDB shell是一个 ...
- mongodb(四):对文档操作增删查改(python)
连接mongodb #!/usr/bin/env python # -*- coding:utf-8 -*- import pymongo mongo_client = pymongo.MongoCl ...
- 从域名到网站,快速创建全新社区站点 - phpwind一键部署操作文档
关于phpwind一键部署服务,请查阅PW官网:http://www.phpwind.com/setup.html 选择一键部署镜像版本,立即开始使用: PW建站系统(Centos 64位) ———— ...
- IDEA使用操作文档
IDEA中怎么设置黑色或白色背景? http://jingyan.baidu.com/article/4e5b3e19330df191911e246b.html 一. IntelliJ IDEA 的 ...
- Linux常用命令操作文档
Ls命令:列出目录内容 选项 长选项 含义 -a --all 列出所有文件,包括隐藏的文件 -d --directory 指定一个目录 -F --classify 在每个列出的名字后面加上类型指示符( ...
- ElasticSearch 基础入门 and 操作索引 and 操作文档
基本概念 索引: 类似于MySQL的表.索引的结构为全文搜索作准备,不存储原始的数据. 索引可以做分布式.每一个索引有一个或者多个分片 shard.每一个分片可以有多个副本 replica. 文档: ...
随机推荐
- 为什么我加了索引,SQL执行还是这么慢(二)?
接上文 在MySQL中,有一些语句即使逻辑相同,执行起来的性能差异确实极大的. 还记得我们上文中的结论吗:如果想使用索引树搜索功能,就不能使用数据库函数来处理索引字段值,而是在不改变索引字段值的同时, ...
- lqb 入门训练 序列求和 (PS:用长整数做数据的输入输出)
入门训练 序列求和 时间限制:1.0s 内存限制:256.0MB 问题描述 求1+2+3+...+n的值. 输入格式 输入包括一个整数n. 输出格式 输出一行,包括一个整数,表示1+2+3 ...
- 初识JVM内存模型
计算机内存模型 在程序运行时,CPU通过访问主存获取数据,但随着CPU的快速发展,CPU访问速度越来越高,硬件无法满足CPU的条件下,大多内存加入了高速缓存机制,不同CPU都有对应的多级(一般为三)缓 ...
- [机器学习笔记]kNN进邻算法
K-近邻算法 一.算法概述 (1)采用测量不同特征值之间的距离方法进行分类 优点: 精度高.对异常值不敏感.无数据输入假定. 缺点: 计算复杂度高.空间复杂度高. (2)KNN模型的三个要素 kNN算 ...
- Win32 COM组件 x Android Service (二)
继续上一篇. 如果不使用AIDL(Android Interface Definition Language接口描述语言)编写服务接口的话,(COM组件,CORBA组件,ICE组件以及其它远程调用框架 ...
- python_day05
今日内容 ''' post请求登录github Request URL: https://github.com/session Request Method: POST #Referer表示上一个请求 ...
- Java——内部类详解
说起内部类,大家肯定感觉熟悉又陌生,因为一定在很多框架源码中有看到别人使用过,但又感觉自己使用的比较少,今天我就带你具体来看看内部类. 内部类基础 所谓内部类就是在类的内部继续定义其他内部结构类. 在 ...
- ecryptfs
ecryptfs是一种加密文件系统.该文件系统的内容在传输和储存时以密文形式存在.只有在mount时用密钥解密才能得到明文.利用这个特性,我们可以用他来对软件镜像中的部分敏感文件系统进行加密,然后打包 ...
- Spring基于注解的配置1——@Required、@Autowired、@Qualifier示例及与传统注入方法的对比
@Required注释 作用:用于属性的set方法,那么这个属性必须在xml文件的bean标签里面进行配置,否则就会抛出一个BeanInitializationException异常. 首先准备一个类 ...
- Java基础知识总结之垃圾回收机制
垃圾回收机制 Java垃圾回收机制是Java语言的重要功能之一.当程序创建对象,数组等引用类型对象时,系统会自动在内存区为之分配一块内存,对象就保存在这块内存区内,当这块内存不再被任何变量引用时,这块 ...