0

我一直在为我的 Mongo-SQL 代码苦苦挣扎,但仍然需要你的帮助 :)

我在将数据从 SQL 服务器数据库传输到 MongoDB 时遇到问题。我的问题是我不能像AVERAGE()SUM()对我的数据进行计算,因为我将它们保存为 MongoDB 中的字符串。我认为这些数字是整数,因为我是从我的 SQL 服务器数据库中获取它们的,它们使用下面的代码存储为整数。我现在看到我getString()在获取值时使用。这就是为什么数字是 MongoDB 中的字符串的原因吗?我怎样才能将它们作为整数?我真的希望能够将它们作为数字来操作!此外,SQL 服务器中的一些值是日期时间,所以我需要大量的“if”语句和不同的“get”方法来获取 MongoDB 中的所有类型。有没有人有一个很好的解决这个问题的方法?

StringBuilder orderstatus = new StringBuilder();
orderstatus.append("SELECT * FROM dbo.fact_orderstatus");
PreparedStatement t = connect.prepareStatement(orderstatus.toString());  

DBCollection orderstat = db.getCollection("Orderstatus");

ResultSet v = t.executeQuery();
ResultSetMetaData rsm = t.getMetaData();
int column = rsm.getColumnCount();

while (v.next()) {
BasicDBObject orderObj = new BasicDBObject();
for(int x=1; x<column +1; x++){
String namn= rsm.getColumnName(x);

String custNum = (v.getString(x));
if (custNum != null && !custNum.trim().isEmpty()
&& custNum.length() != 0)
orderObj.append(namn, custNum);

}


orderstat.insert(orderObj)
4

1 回答 1

0

您可以在结果集上使用 getColumnType() 方法。

由于您使用的是 SQL 服务器,我建议您先阅读以下内容:http: //msdn.microsoft.com/en-us/library/ms378668.aspx

这个 SO 问题/答案也可能会有所帮助: ResultSet to JSON 的最有效转换?

于 2013-05-03T15:42:56.833 回答