架構:Mongodb:將所有相關數據存儲在一個集合或抽象的數據片段中?
articles: [
{
_id: uid,
owner: userId,
title: string,
text: text,
}
],
comments_1: [
{
// single comment
articleId: uid,
text: text,
user: {
name: string,
id: uid
}
}
],
comments_2: [
{
// all comments at once
articleId: uid,
comments: [
{
_id: commentId,
text: text,
user: {
name: string,
id: uid
}
}
],
}
],
我有點困惑與MongoDB的建議: 說,我需要檢索文章頁面的信息。我需要做2個請求,首先通過ID找到文章,然後找到評論。如果我在每篇文章中包含註釋(comments_2
)作爲屬性,我只需要執行一個查詢即可獲取我需要的所有數據,並且如果我需要列出20個文章的標題,我會執行具有指定屬性的查詢來檢索,對嗎?
- 我應該將評論和文章存儲在不同的集合中嗎?
- 如果意見將在不同的商店,我應該存儲評論
comments_1
方式或comments_2
方式?
我會避免深入的解釋,因爲架構解釋清楚我的觀點,我猜。簡而言之,我不知道是否最好將所有內容都存儲在一個地方,然後指定我想在查詢時檢索的屬性,或者將數據片段抽象到不同的集合中?
謝謝@YaroslavAdmin,多了一個澄清:如果我要在一個集合(包括評論)存儲一切信息,有沒有方法來檢索,比如,所有的數據,但具體的意見數量? – stkvtflw
@stkvtflw是的,這是可能的。看[這個答案](http://stackoverflow.com/a/8452577/1377864)。 –