对于我们的项目,我们正在将数据从Oracle迁移到MongoDB,迁移后现在已经有数百万的记录(由Dev团队通过flatfiles和shell脚本完成)现在作为QA团队,我们需要验证这些记录以确认从某种意义上说,我们需要确保迁移的记录与源数据完全相同。 我们开发了一个Java程序来从Oracle DB和Mongo DB中提取数据,并使用CSV在本地进行比较,如下所示:
/************ Fetch Mongo DB data ***********/
MongoClientURI connectionString = new MongoClientURI("mongodb://localhost:27017");
MongoClient mongoClient = new MongoClient(connectionString);
MongoDatabase database = mongoClient.getDatabase("test");
MongoCollection<Document> collection = database.getCollection("books");
MongoCursor<Document> cursor = collection.find().iterator();
// MongoCursor<Document> cursor = collection.find().projection(Projections.exclude("_idoid")).iterator();
try {
while (cursor.hasNext()) {
JFlat flatMe = new JFlat(cursor.next().toJson());
flatMe
.json2Sheet()
.headerSeparator("")
.write2csv("C:\\Users\\XXXX\\Desktop\\MongoTargettest.csv");
}
} finally {
cursor.close();
}
mongoClient.close();