Quais são as desvantagens de armazenar o Guid as String no MongoDB?
Um aplicativo persiste no campo Guid no Mongo e ele acaba sendo armazenado como BinData:
"_id" : new BinData(3, "WBAc3FDBDU+Zh/cBQFPc3Q==")
A vantagem neste caso é a compactação, a desvantagem aparece quando é necessário solucionar o problema. Guids são passados através de URLs, e constantemente transformá-los em BinData ao acessar o console do Mongo é um pouco doloroso.
Quais são as desvantagens de armazenar o Guid como string, além de aumentar de tamanho? Uma vantagem é a facilidade de solucionar problemas:
"_id" : "3c901cac-5b90-4a09-896c-00e4779a9199"
Aqui está um protótipo de uma entidade persistente em C #:
class Thing
{
[BsonIgnore]
public Guid Id { get; set; }
[BsonId]
public string DontUseInAppMongoId
{
get { return Id.ToString(); }
set { Id = Guid.Parse(value); }
}
}