MongoDB正确的自动增量方式

时间:2014-12-19 04:04:51

标签: mongodb mongodb-query auto-increment nosql

我有一个数据库结构,其文档使用外键相互引用。尽管MongoDB在JOIN查询方面做得不好,但我们可以通过基于外键运行单独的查询来获取文档。

我可以使用MongoDB的ObjectID(_id),它是唯一的。但它太长了,并且在客户端显示这个长ID以查询数据看起来有点难看。我想在MongoDB中创建自定义自动增量来解决这个问题,但MongoDB文档说:

  

通常在MongoDB中,您不会对_id字段或任何字段使用自动增量模式,因为它不会扩展到具有大量文档的数据库。

那么我的以下数据结构的最佳解决方案

Collection: Products
{ 
    Project_ID: 1001, <Auto Incrementing>
    Product: "Example Product",
    ..<Few other fields>..
}


Collection: Payments
{ 
    Project_ID: 1001, <Foreign key>
    Pay_ID: 2001,  <Auto Incrementing>
    ..<Few other fields>..
}


Collection: Others
{ 
    Project_ID: 1001, <Foreign key>
    Pay_ID: 2001,  <Foreign key>
    Other_ID: 3001,  <Auto Incrementing>
    ..<Few other fields>..
}

1 个答案:

答案 0 :(得分:0)

MongoDB并不像关系数据库那样使用。它不支持服务器端的外键概念。理想情况下,您必须嵌入子文档。有关更多信息,请参阅此帖

MongoDB normalization, foreign key and joining