目录
  1. 需求
  2. 工作
mongodb-driver更新库中某一字段的值

需求

自己做的图床,上传的图片是没有后缀名的,写文章时,markdown是支持的,可以显示图片,但是,当我把文章复制到微信公众号时,却发现上传失败,手动加了后缀后,能显示,所以需要将图床上所有的图片加上“.jpg”后缀。

因为我使用一个mongo来存储的映射关系,所以第一步要修改mongo中的URL字段。

工作

项目pom.xml,不想用springboot引入一大堆包,所以用了mongodb-driver。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>bson</artifactId>
<version>3.11.0</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver</artifactId>
<version>3.11.0</version>
<exclusions>
<exclusion>
<groupId>org.mongodb</groupId>
<artifactId>bson</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-core</artifactId>
<version>3.11.0</version>
</dependency>

java代码,简单的用main函数跑了一下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
MongoClient mongoClient = MongoClients.create("mongodb://root:root@192.168.0.188:27017/?authSource=admin");
System.out.println("Connect to database successfully");
// 连接到数据库
MongoDatabase database = mongoClient.getDatabase("diffuser");
MongoCollection<Document> collection = database.getCollection("photo");
FindIterable<Document> findIterable = collection.find();
for (Document document : findIterable) {
String url = document.getString("url");
System.out.println(url);
Object id = document.get("_id");
System.out.println(id);
Document filter = new Document();
filter.put("_id", id);
Document update = new Document();
DBObject field = new BasicDBObject();
field.put("url", url + ".jpg");
update.put("$set", field);
collection.updateOne(filter, update);
}

本篇就是记录一下,等以后有同样问题的时候,可以拿来就用。

文章作者: ClawHub
文章链接: https://www.clawhub.club/posts/2019/11/27/JAVA%E5%9F%BA%E7%A1%80/mongodb-driver%E6%9B%B4%E6%96%B0%E5%BA%93%E4%B8%AD%E6%9F%90%E4%B8%80%E5%AD%97%E6%AE%B5%E7%9A%84%E5%80%BC/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ClawHub的博客
打赏
  • 微信
  • 支付宝
扫一扫关注ClawHub公众号,专注Java、技术分享、面试资源。