package com.leo.test;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import org.bson.types.Binary;
import org.bson.types.ObjectId;
import org.springframework.util.FileCopyUtils;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
* @author leo
* @date 2021/4/10 17:01
*/
public class LeoFileDownTest {
public static void main(String[] args) throws IOException {
ServerAddress serverAddress = new ServerAddress("127.0.0.1", 12345);
List<ServerAddress> addrs = new ArrayList<>();
addrs.add(serverAddress);
MongoCredential credential = MongoCredential.createCredential("admin", "leo", "admin".toCharArray());
MongoClientOptions.Builder builder = MongoClientOptions.builder();
MongoClientOptions clientOptions = builder.build();
MongoClient mongoClient = new MongoClient(addrs, credential, clientOptions);
MongoDatabase tfs = mongoClient.getDatabase("leo");
MongoCollection<Document> collection = tfs.getCollection("fs.files");
Document query = new Document("md5", "d751713988987e9331980363e24189ce");
FindIterable<Document> documents = collection.find(query);
for (Document document : documents) {
ObjectId id = document.getObjectId("_id");
collection = tfs.getCollection("fs.chunks");
query = new Document("files_id", id);
documents = collection.find(query);
for (Document document2 : documents) {
ObjectId id2 = document2.getObjectId("_id");
Binary data2 = (Binary) document2.get("data");
byte[] data1 = data2.getData();
FileCopyUtils.copy(data1, new File("C:\\Users\\Dell\\Desktop\\ERP\\" + id2 + ".csv"));
}
}
}
}