在MySQL中describe
語句可以用來檢索一個給定的表的模式,遺憾的是我不能爲MongoDB的Java驅動程序:(如何檢索DBObject的模式?
比方說,我有我也有流動的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轉換成地圖,然後映射到一個組,設置一個迭代器和提取屬性名稱/值......還有現在知道如何提取數據類型。
是這樣的:
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());