我打算用MongoDB中和的NodeJS建立我的第一個項目(家譜數據庫),我問自己,如果我的數據模型是正確的選擇:我的MongoDB數據模型是正確的選擇嗎?
人文檔(簡體):
{
"_id": ObjectId("123"),
"modified": ISODate("2015-02-04T16:52:32.601Z"),
"birth": ISODate("1995-02-04T16:52:32.601Z"),
"name": "peter"
}, {
"_id": ObjectId("456"),
"modified": ISODate("2015-02-04T16:52:32.601Z"),
"birth": ISODate("1999-02-04T16:52:32.601Z"),
"name": "uschi"
}
關係文件(簡體):
{
"sourceID": ObjectId("123"),
"targetID": ObjectId("456"),
"type": "Married",
"modified": ISODate("2015-02-04T16:52:32.599Z"),
"startrelation": ISODate("2001-02-04T16:52:32.601Z"),
"endrelation": ISODate("2007-02-04T16:52:32.601Z"),
"_id": ObjectId("54d24e5033bfc203aaaad590")
}
昨天我試着檢索與所有的人及其相關人員名單,並得到了擔憂我的數據模型,因爲我需要大量的代碼來生成以下結果:
items: [
{
"_id": ObjectId("123"),
"modified": ISODate("2015-02-04T16:52:32.601Z"),
"birth": ISODate("1995-02-04T16:52:32.601Z"),
"name": "peter"
"married": [{
"_id": ObjectId("456"),
"modified": ISODate("2015-02-04T16:52:32.601Z"),
"birth": ISODate("1999-02-04T16:52:32.601Z"),
"name": "uschi"
}, ...]
}, ...]
該解決方案有問題嗎?
我花了很多的工作,因爲你沒有生成結果存儲數據以使計算結果變得容易。存儲數據以便您的常見和重要查詢很容易就是MongoDB範例。如果您需要關於如何設計架構的更多建議,請更新有關常見操作的更多信息。還請查看[MongoDB手冊數據建模示例和模式](http://docs.mongodb.org/manual/applications/data-models/)。 – wdberkeley
感謝您的回覆和您的鏈接。我刪除了我的關係文檔,現在將所有關係存儲在人員文檔中。 我決定存儲相關人員的名稱和人員對象的_id。查詢現在更容易。 – dawie