在 mySQL 中,该describe
语句可用于检索给定表的模式,不幸的是我找不到 MongoDB java 驱动程序的类似功能:(
假设我有流动的 BSON 文件:
{
_id: {$oid:49},
values: { a:10, b:20}
}
,
{
_id: {$oid:50},
values: { b:21, c:31}
}
现在让我们假设我这样做:
DBObject obj = cursor.next();
DBObject values_1 = (DBObject) obj.get("values");
并且架构应该是这样的:
>a : int
>b : int
对于下一个文件:
DBObject obj = cursor.next();
DBObject values_2 = (DBObject) obj.get("values");
架构应该是:
>b : int
>c : int
既然我解释了模式重试是什么,some1 可以很好地告诉我该怎么做吗?
如果有帮助,在这种情况下,我只需要知道字段名称(因为数据类型总是相同的,但如果知道如何检索数据类型也会很好)。
一个工作方法,是将 DBObject 转换为 Map,然后将 Map 转换为 Set,将 Set 转换为 Iterator 并提取属性名称/值......现在仍然知道如何提取数据类型。
这是:
DBObject values_1 = (DBObject) obj.get("values");
Map _map = values_1.toMap();
// Set set = _map.entrySet(); // if you want the <key, value> pairs
Set _set_keys = _map.keySet();
Iterator _iterator = _set_keys.iterator();
while (_iterator.hasNext())
System.out.println("-> " + _iterator.next());