的應用仍然存在GUID字段中蒙戈和它結束了被存儲爲BinData:在MongoDB中存儲Guid as String的缺點是什麼?
"_id" : new BinData(3, "WBAc3FDBDU+Zh/cBQFPc3Q==")
的優點在這種情況下是緊湊,缺點時顯示一個需要解決的應用。 Guid通過URL傳遞,並且在進入Mongo控制檯時不斷將它們轉換爲BinData有點痛苦。
除了增加尺寸外,還存儲Guid作爲字符串的缺點?一個優點是簡化故障排除:
"_id" : "3c901cac-5b90-4a09-896c-00e4779a9199"
這裏是一個持久化實體的在C#中的原型:
class Thing
{
[BsonIgnore]
public Guid Id { get; set; }
[BsonId]
public string DontUseInAppMongoId
{
get { return Id.ToString(); }
set { Id = Guid.Parse(value); }
}
}
記憶,空間和時間查詢和索引大小有一些,你可以做什麼來優化是這樣的:http://www.mongodb.org/display/DOCS/Optimizing+Object+IDs#OptimizingObjectIDs-StoreBinaryGUIDsasBinData %2Cratherthanashexencodedstrings – Sammaye 2012-08-13 21:59:09
這就是你實際上在做atm,抱歉沒有完全讀完問題。 – Sammaye 2012-08-13 22:00:02
你可能想檢查一下我的相關問題的答案:http://stackoverflow.com/a/22607171/253098 – SystematicFrank 2014-03-24 11:17:26