mongodb插入文档,更新文档和检索文档
import com.mongodb.client.*;
import com.mongodb.client.MongoClient;
import com.mongodb.client.model.Filters;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;
import org.bson.Document; import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer; import static com.mongodb.client.model.Accumulators.sum;
import static com.mongodb.client.model.Aggregates.group;
import static com.mongodb.client.model.Aggregates.match;
import static com.mongodb.client.model.Aggregates.project;
import static com.mongodb.client.model.Filters.and;
import static com.mongodb.client.model.Filters.eq;
import static com.mongodb.client.model.Filters.exists;
import static com.mongodb.client.model.Filters.gt;
import static com.mongodb.client.model.Filters.gte;
import static com.mongodb.client.model.Filters.lt;
import static com.mongodb.client.model.Filters.lte;
import static com.mongodb.client.model.Projections.excludeId;
import static com.mongodb.client.model.Sorts.descending;
import static com.mongodb.client.model.Updates.inc;
import static com.mongodb.client.model.Updates.set;
import static java.util.Arrays.asList;
import static java.util.Collections.singletonList; public class MyMongodbTest { public static void main(String[] args) throws Exception{
try{
// 连接到 mongodb 服务
// MongoClient mongoClient = new MongoClient("localhost", 27017);
MongoClient mongoClient = MongoClients.create(); // 连接到数据库
MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");
System.out.println("Connect to database successfully"); //不能重复创建
// mongoDatabase.createCollection("test");
// System.out.println("集合创建成功"); MongoCollection<Document> collection = mongoDatabase.getCollection("test");
System.out.println("集合 test 选择成功"); //插入文档
/**
* 1. 创建文档 org.bson.Document 参数为key-value的格式
* 2. 创建文档集合List<Document>
* 3. 将文档集合插入数据库集合中 mongoCollection.insertMany(List<Document>) 插入单个文档可以用 mongoCollection.insertOne(Document)
* */
Document document = new Document("title", "MongoDB001").
append("description", "database").
append("likes", 100).
append("by", "Fly");
List<Document> documents = new ArrayList<Document>();
documents.add(document);
collection.insertMany(documents);
System.out.println("文档插入成功"); //检索所有文档
/**
* 1. 获取迭代器FindIterable<Document>
* 2. 获取游标MongoCursor<Document>
* 3. 通过游标遍历检索出的文档集合
* */
FindIterable<Document> findIterable = collection.find();
MongoCursor<Document> mongoCursor = findIterable.iterator();
while(mongoCursor.hasNext()){
System.out.println(mongoCursor.next());
} //更新文档 将文档中likes=100的文档修改为likes=200
collection.updateMany(Filters.eq("likes", 100), new Document("$set",new Document("likes",200)));
//检索查看结果
FindIterable<Document> findIterableUp = collection.find();
MongoCursor<Document> mongoCursorUp = findIterableUp.iterator();
while(mongoCursorUp.hasNext()){
System.out.println(mongoCursorUp.next());
} }catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
} } }
mongodb插入文档,更新文档和检索文档的更多相关文章
- 在.NET Core中使用MongoDB明细教程(2):使用Filter语句检索文档
在上篇文章我们介绍了一些驱动程序相关的基础知识,以及如何将文档插入到集合中.在这篇文章中,我们将学习如何从数据库中检索文档. 作者:依乐祝 译文地址:https://www.cnblogs.com/y ...
- 《mongoDB》基本操作-创建/更新/删除文档
一:基本操作 - db; 当前选择的集合(等于数据库名) > db demo - use db_name; 选择你要操作的集合 > use demo switched to db dem ...
- MongoDB插入文档
db.collection.insertOne() 插入单个文档.db.collection.insertMany() 插入多个文档.db.collection.insert() 插入单/多个文档. ...
- MongoDB小结12 - update【多文档更新】
当一次更新一个文档无法满足我们的脚步时,我们可以选择一次更新多个文档,及在update的第四个参数的位置添上true,及做多文档更新,建议就算不做多文档更新也显式的在第四个参数上置false,这样明确 ...
- ElasticSearch查询 第二篇:文档更新
<ElasticSearch查询>目录导航: ElasticSearch查询 第一篇:搜索API ElasticSearch查询 第二篇:文档更新 ElasticSearch查询 第三篇: ...
- 更新日志 - BugHD 全面开放 API 文档
Hey, 上周 BugHD 全面更新 API 文档,上线一些新的功能,让你可以轻松掌控 Crash ,更方便分享.定位和解决.同时,新版 fir.im 也有所优化,希望你们会喜欢. 具体如下: 开放 ...
- 关于Elasticsearch文档的描述以及如何操作文档的详细总结
文档 什么是文档 在大多数应用中,多数实体或对象可以被序列化为包含键值对的 JSON 对象. 一个 键 可以是一个字段或字段的名称,一个 值 可以是一个字符串,一个数字,一个布尔值, 另一个对象,一些 ...
- 老猿学5G扫盲贴:3GPP规范文档命名规则及同系列文档阅读指南
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 在学习5G规范过程中,有些内容把握不定的时候,有时 ...
- 如何写好技术文档——来自Google十多年的文档经验
本文大部分内容翻译总结自<Software Engineering at Google> 第10章节 Documentation. 另外,该书电子版近日已经可以免费下载了 https:// ...
- (转载)Excel文档保存的时候,提示“文档未保存”
亲测,成功搞定 Excel文档保存的时候,提示“文档未保存”? 先打开你需要处理的excel,然后打开工具栏--宏--录制新宏--确定--停止录制宏--宏-宏--编辑--复制以下程序Sub 恢复保存( ...
随机推荐
- Flink 在唯品会的实践
简介: Flink 在唯品会的容器化实践应用以及产品化经验. 唯品会自 2017 年开始基于 k8s 深入打造高性能.稳定.可靠.易用的实时计算平台,支持唯品会内部业务在平时以及大促的平稳运行.现平台 ...
- 双11特刊|购物车实时显示到手价,看云原生内存数据库Tair如何提升用户体验?
阿里云自研内存数据库Tair诞生于2009年,是一种支持高并发低延迟访问的云原生内存数据库,完全兼容Redis,已历经多年双11大促考验,提供核心在线访问加速能力,显著提升系统吞吐量. 作为双11大 ...
- 基于Delta lake、Hudi格式的湖仓一体方案
简介: Delta Lake 和 Hudi 是流行的开放格式的存储层,为数据湖同时提供流式和批处理的操作,这允许我们在数据湖上直接运行 BI 等应用,让数据分析师可以即时查询新的实时数据,从而对您的 ...
- [Go] 注意 go build -o <output> 选项的准确含义
-o <output> 选项强制执行把构建的可执行文件写入到目标文件或者目标目录中. 如果 output 是已存在的目录,那么所有构建好的文件都将写入到该目录中. 注意:如果目录不存在的话 ...
- TheWay2Hack
coding 阶段一 打基础. CS61A:现在进度落后一个月,递归部分让我焦头烂额.所以将完成时间延后了一个月,截止到6月7号搞完. CSAPP:卡在datalab,按照3月18号开始,预计7月1号 ...
- Linux下ffmpeg库的编译链接
/usr/bin/ld: /usr/local/ffmpeg/lib/libavformat.a(aviobuf.o): in function `ff_crc04C11DB7_update':/ho ...
- DNS(6) -- DNS子域实现
目录 1. DNS子域 1.1 子域授权环境说明 1.2 子域授权实现 1.2.1 主域DNS服务器配置 1.2.2 子域DNS服务器配置 1.3 DNS转发域 1.3.1 DNS转发域概述 1.3. ...
- C语言简答题
C语言的历史: c语言是在20世纪70年代初美国贝尔实验室开发的一种高级编程语言,由B语言发展来,最初是为了Unix操作系统开发的.在80年代中期,由ISO和ANSI C对它进行了一系列的标准化, 9 ...
- Agile PLM数据库表结构(Oracle)
刚进公司,任务是接管PLM系统,但是还在给外包团队开发,没有代码.无妨先看业务和数据库,ok,业务看不懂,只能先看数据库,数据库没有数据字典,这个系统没有任何文档产出......练手时发现数据库类型是 ...
- IceRPC之调用管道Invocation pipeline与传出请求Outgoing request->快乐的RPC
作者引言 .Net 8.0 下的新RPC 很高兴啊,我们来到了IceRPC之调用管道 Invocation pipeline与传出请求 Outgoing request->快乐的RPC, 基础引 ...