首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mongodb NoRM和POCO

Mongodb NoRM和POCO
EN

Stack Overflow用户
提问于 2010-11-08 23:33:28
回答 2查看 1.4K关注 0票数 2

我正在C#中试验Mongodb和NoRM。

据我所知,在Mongodb中唯一标识文档的ObjectId是一种“特殊的”Guid (在某种意义上是唯一的),但它包含一些重要的部分,允许更容易地进行排序和索引(时间戳、机器哈希、processId和增量)。

我想让我的对象使用自动生成的Guid作为Id,这样就不会有像ObjectId这样的外部类型阻止我迁移到另一种技术或回到经典的Ado.net或Nhibernate。

另一种选择是在POCO中以字符串形式使用Id并使用ObjectId.NewObjectId().ToString()

它的最佳实践是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-08 23:44:04

ObjectId不是guids。Guid是MS为其使用的UUID版本提供的名称。ObjectIds是一种完全不同的算法。

也就是说,您可以在mongo中使用任何您喜欢的ID,并且它不会有性能损失(在rails世界中,一些ORM提倡使用字符串)

在mongo中使用ObjectId主要是为了节省空间。如果有那么大的问题,就使用其他的东西,只需意识到使用不必要的大ID字段最终只会浪费ram。但如果这是一件大事,那就去找Guids吧。

票数 2
EN

Stack Overflow用户

发布于 2011-12-09 00:53:58

正如Matt所说,你可以使用任何你喜欢的类型作为_id,只要它在它的集合中是独一无二的。

将UUID存储在DOC:BSON类型中是最有效的,但如果空间和速度不是问题,也可以使用十六进制字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4125275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档