2011-10-10 58 views
1

我一直在试图找到一种方法来在mongodb中生成唯一的Id。我知道mongodb具有_id,这是基于时间哪个服务器添加到其他事物中的唯一基础。我遇到的问题是我需要用户的简单ID。我知道我可以拥有一个集合,只是为了跟踪我想要的这些id,但我担心当mongodb处于集群中(共享和故障切换)时,有可能会生成两次相同的数字,事例会在我的系统中具有相同的ID。正在生成Secondary Uniqie Id的Mongodb

我正在考虑设置一个PostgreSQL服务器来处理id生成。它所要做的就是插入一个新行并返回新行的id,然后每天一次它可以轻松擦除所有日期,然后再生成下一个密钥。有没有人有任何其他建议。

只是让你知道我使用PHP。

+0

任何特定的原因,你想小(数字?)用户ID?只是美学? –

+0

@ muistooshort yup它只是所以它看起来不错原因是,我工作的公司是让我建立一个应用程序,也有一个API,其他供应商将连接。我的意思是,我确信我可以从mongo开始给出_id,但它有点长,并且比较数字总是比较容易,然后比较字符串。 – WojonsTech

回答

1

bson在mongodb中的ObjectId将是唯一的集群范围。因此这是安全的。

另请参阅以下页面的序列号; ObjectId是首选(最佳尺度):http://www.mongodb.org/display/DOCS/Object+IDs

+0

并且为了澄清,ObjectId值可以放在任何字段中,而不仅仅是_id。 –

+0

是的,我知道是unqiue,但我的问题是我也需要他们对于用户ID的较小。 – WojonsTech