使用账户密码连接mongodb下载图片java代码并标注使用了那个版本的
时间: 2024-03-06 12:47:32 浏览: 14
好的,下面是使用账户密码连接 MongoDB 并下载图片的 Java 代码示例:
```java
import com.mongodb.client.gridfs.GridFSBucket;
import com.mongodb.client.gridfs.GridFSBuckets;
import com.mongodb.client.gridfs.model.GridFSFile;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.Projections;
import com.mongodb.client.model.Sorts;
import org.bson.Document;
import org.bson.types.ObjectId;
import java.io.*;
public class MongoDBExample {
public static void main(String[] args) {
// MongoDB 连接字符串
String connectionString = "mongodb://username:password@localhost:27017";
// 连接到 MongoDB
try (MongoClient mongoClient = MongoClients.create(connectionString)) {
// 获取数据库
MongoDatabase database = mongoClient.getDatabase("myDatabase");
// 获取 GridFSBucket 对象
GridFSBucket gridFSBucket = GridFSBuckets.create(database);
// 获取文件集合
MongoCollection<Document> filesCollection = database.getCollection("fs.files");
// 查询文件
Document fileDoc = filesCollection.find(Filters.eq("filename", "example.png")).first();
// 获取文件 ID
ObjectId fileId = fileDoc.getObjectId("_id");
// 获取文件输出流
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
// 下载文件
gridFSBucket.downloadToStream(fileId, outputStream);
// 将文件保存到本地
File file = new File("example.png");
FileOutputStream fileOutputStream = new FileOutputStream(file);
outputStream.writeTo(fileOutputStream);
fileOutputStream.close();
System.out.println("文件已保存到:" + file.getAbsolutePath());
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
上面的代码使用了 MongoDB Java 驱动程序的 4.4.3 版本。你可以在 pom.xml 文件中添加以下依赖项来使用该版本的驱动程序:
```xml
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>4.4.3</version>
</dependency>
```
请注意,上面的代码中的 `username` 和 `password` 应该被你的 MongoDB 数据库的实际用户名和密码所替换。