¿Cuáles son los inconvenientes de almacenar Guid as String en MongoDB?
Una aplicación persiste en el campo Guid en Mongo y termina siendo almacenada como BinData:
"_id" : new BinData(3, "WBAc3FDBDU+Zh/cBQFPc3Q==")
La ventaja en este caso es la compacidad, la desventaja aparece cuando uno necesita solucionar problemas de la aplicación. Las guías se pasan a través de las URL, y transformarlas constantemente a BinData cuando se accede a la consola Mongo es un poco doloroso.
¿Qué inconvenientes tiene almacenar Guid como cadena además de aumentar su tamaño? Una ventaja es la facilidad de resolución de problemas:
"_id" : "3c901cac-5b90-4a09-896c-00e4779a9199"
Aquí hay un prototipo de una entidad persistente en C #:
class Thing
{
[BsonIgnore]
public Guid Id { get; set; }
[BsonId]
public string DontUseInAppMongoId
{
get { return Id.ToString(); }
set { Id = Guid.Parse(value); }
}
}