Java 访问 MongoDB-操作文档
-
- 1.添加文档
-
- 1.1 添加单个文档
- 1.2 添加多个文档
- 2.更新文档
-
- 2.1 更新单个文档单个键
- 2.2 更新单个文档多个键
- 2.3 更新多个文档中的单个键
- 2.4 更新多个文档中的多个键
- 2.5 更新文档中的数组
- 3.查询文档
-
- 3.1 查询全部文档
- 3.2 根据_id 查询文档-$eq
- 3.3 查询多个文档-$gt
- 3.4 查询多个文档-$type
- 3.5 查询多个文档-$in
- 3.6 查询多个文档-$nin
- 3.7 查询多个文档-$regex
- 3.8 逻辑运算符-$and
- 3.9 逻辑运算符-$or
- 3.10 逻辑运算符-$ and 与$or 联合使用
- 3.11 查询文档-排序处理
- 4.日期操作
-
- 4.1 插入系统当前日期
- 4.2 插入指定日期
- 4.3 查询日期-$eq
- 4.4 查询日期-$gt
- 5.聚合操作
-
- 5.1 聚合操作-计算文档总数-$sum
- 5.2 聚合操作-计算值的总和-$sum
- 5.3 聚合操作-在分组中计算值的总和-$sum
- 5.4 聚合操作-分组前的数据过滤-$match
- 5.5 聚合操作-分组后的数据过滤-$match
- 5.6 聚合操作-$project-聚合投影约束
- 5.7 聚合操作-$project-字符串处理
- 5.8 聚合操作-$project 算术运算
- 5.9 聚合操作-$project 日期处理
- 6.分页查询
-
- 6.1 使用 skip 与 limit 方法分页
- 6.2 优化分页查询
1.添加文档
1.1 添加单个文档
/**
* 添加单个文档
*/
public void inesrtSingleDocument(){
//获取集合
MongoCollection collection = MongoDBAuthPoolUtil.getCollection("develop","devtest");
// {}---->Document
//append(String key,Object value)---->{key:value}
Document docu = new Document();
docu.append("username","lisi").append("userage",26).append("userdesc","Very Good").append("userlike", Arrays.asList(new String[]{
"Music","Sport"}));
collection.insertOne(docu);
}
1.2 添加多个文档
/**
* 文档的批量添加
*/
public void insertManyDocument(){
MongoCollection collection = MongoDBAuthPoolUtil.getCollection("develop","devtest");
List<Document> list = new ArrayList<>();
for(int i=0;i<5;i++){
Document docu = new Document();
docu.append("username","zhangsan"+i);
docu.append("userage",20+i);
docu.append("userdesc","OK"+i);
docu.append("userlike",Arrays.asList(new String[]{
"Music","Sport"}));
list.add(docu);
}
collection.insertMany(list);
}
2.更新文档
2.1 更新单个文档单个键
/**
* 更新单个文档单个键
*/
public void updateSingleDocumentSingleKey(){
MongoCollection collection = MongoDBAuthPoolUtil.getCollection("develop","devtest");
//更新文档
//Filters 封装了条件的一个工具类{$set:{userage:28}}
collection.updateOne(Filters.eq("username","lisi"),new Document("$set",new Document("userage",28)));
}
2.2 更新单个文档多个键
/**
* 更新单个文档多个键
*/
public void updateSingleDocumentManyKey(){
MongoCollection collection = MongoDBAuthPoolUtil.getCollection("develop","devtest");
collection.updateOne(Filters.eq("username","zhangsan0"),new Document("$set",new Document("userage",18).append("userdesc","Very Good")));
}
2.3 更新多个文档中的单个键
/**
* 更新多个文档单个键
*/
public void updateManyDocumentSingleKey(){
MongoCollection collection = MongoDBAuthPoolUtil.getCollection("develop","devtest");
collection.updateMany(Filters.ne("username",null),new Document("$set",new Document("userdesc","Very Good")));
}
2.4 更新多个文档中的多个键
/**
* 更新多个文档多个键
*/
public void updateManyDocumentManyKey(){
MongoCollection collection = MongoDBAuthPoolUtil.getCollection("develop","devtest");
collection.updateMany(Filters.ne("username",null),new Document("$set",new Document("userdesc","OK").append("userage",20)));
}
2.5 更新文档中的数组
/**
* 更新文档中的数组
* {$push:{}}
*/
public void updateDocumentArray(){
MongoCollection collection = MongoDBAuthPoolUtil.getCollection("develop","devtest");
collection.updateOne(Filters.eq("username","lisi"),new Document("$push",new Document("userlike","Art")));
}
3.查询文档
3.1 查询全部文档
/**
* 查询全部文档
*/
public void selectDocumentAll(){
MongoCollection collection = MongoDBAuthPoolUtil.getCollection("develop","devtest");
//返回的是一个文档的迭代器
FindIterable<Document> iterable = collection.find();
MongoCursor<Document> cursor = iterable.iterator();
while(cursor.hasNext()){
Document docu = cursor.next();
System.out.println(docu.get("username")+"\t"+docu.get("userage")+"\t"+docu.get("userdesc")+"\t"+docu.get("userlike"));
}
}
3.2 根据_id 查询文档-$
eq
/**
* 根据_id 查询文档
*/
public void selectDocumentById(){
MongoCollection collection = MongoDBAuthPoolUtil.getCollection("develop","devtest");
FindIterable<Document> iterable = collection.find(Filters.eq("_id",new ObjectId("5d398cd64b022206d87d168e")));
MongoCursor<Document> cursor = iterable.iterator();
while(cursor.hasNext()){
Document docu = cursor.next();
System.out.println(docu.get("username")+"\t"+docu.get("userage")+"\t"+docu.get("userdesc")+"\t"+docu.get("userlike"));
}
}
3.3 查询多个文档-$
gt
/**
* 根据年龄查询文档,条件是年龄大于 19
*/
public void selectDocumentConditionByGt(){
MongoCollection collection = MongoDBAuthPoolUtil.getCollection("develop","devtest");
FindIterable iterable = collection.find(Filters.gt("userage",19));
MongoCursor<Document> cursor = iterable.iterator();
while(cursor.hasNext()){
Document docu = cursor.next();
System.out.println(docu.get("username")+"\t"+docu.get("userage")+"\t"+docu
版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: