0
我有一個數據庫結構,其文檔使用一個外鍵來引用對方。即使MongoDB在JOIN查詢中表現不佳,我們也可以通過運行基於外鍵的單獨查詢來獲取文檔。MongoDB正確的自動增量方式
我可以使用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>..
}
這是罕見的顯示'_id'到客戶端,對不對?您可以使用'POST'請求隱藏'_id'。 – Raptor 2014-12-19 04:07:42
呃,並且關於每種顯示技術都允許枚舉表格行等。爲了讓OP長話短說:沒有自動增量。 – 2014-12-19 06:43:28
@OP:我有這樣的感覺,你正在嘗試做的(明智或潛意識)是使用MongoDB作爲RDBMS。在MongoDB中沒有外鍵的概念,沒有自動增量。如果您嘗試使用MongoDB來模擬RDBMS,那麼會發生什麼:最終會出現一個過度規範化,表現不佳的系統,其代碼基礎臃腫。整個發展過程與一開始不同。在RDBMS中,您類似於您的域模型結構,並試圖回答您的問題。在MongoDB中,根據您想要回答的問題創建模型。 – 2014-12-19 06:57:20