2013-06-02 98 views
2

我從mongodb開始,需要一些幫助才能繼續在此項目上工作。這些問題列在下面,我欣賞任何和所有答案:)從MongoDB開始需要一些幫助

謝謝!

  1. 如何在高級中創建集合?從我理解的 開始,當您爲第一個 時間插入一個文檔時,會創建該集合。
  2. 那裏有什麼類型的索引?
  3. 最後,在mongodb中沒有像mysql那樣的連接。假設我正在嘗試構建一個 基本專用消息系統。我想要2個系列 (表格)。一個列出對話中的參與者,一個對話的唯一標識號,另一個收集所有對話的消息 。在MongoDB中,將 第二個collectino嵌入第一個子列作爲子列(如 「消息」)更明智嗎?或者我最好讓他們分開?是否可以用新行更新子列?讓我鏈接一個我正在談論的快速示例 http://pastebin.com/gzKDNwnU
+0

我也是,我也是,謝謝你這個問題。 –

+0

雖然沒有試圖回答,但Mongo是面向對象的。它承認我們並不關心表格的事實。在你的情況下,你將有一個'User'類和一個'Conversation'類,它有多個帖子,按時間排序。每個帖子也應該有它的類'Post',並且屬於一個特定的'User'實例。而且,就我所知,Mongo只是簡單地把這個對象結構說成是一個noob,而已。 –

+0

@BorisStitnicky的MongoDB不應該與一個OO數據庫相混淆,這是一個文檔存儲 – Sammaye

回答

1

您不提前創建集合。由於某些特殊集合(如capped集合)確實需要事先指定一些參數,因此存在createCollection命令。當您在其中的某些字段上創建或「確保索引」時,集合也會被創建。

索引類型記錄在docs.mongodb.org

我會推薦反對嵌入文件的任何系列的文件,可以繼續增長無界。將對話集合中的某些信息非規範化爲消息集合(如果需要)會更好。請記住,目標是能夠在一次閱讀所有或大部分您通常需要的信息,而不是更多。所以這不是確定模式的數據,而是您的應用程序訪問模式。

+0

所以,你會建議我張貼在我的引擎收錄鏈接的格式,並使用$推的東西添加到消息的數組的結尾?當試圖進行對話時,只會讀一次。 – MasterGberry

+0

不,這與我推薦的相反。我建議不要在對話中嵌入消息。 –

+0

哎呀,得到正常化和反正常化,我的壞。那麼這將是兩個讀取。也是一個單獨的問題,但人們通常如何查詢對話,例如當唯一抓住它時是_id?我假設uuid沒有用於鏈接的html,那麼你會推薦什麼? – MasterGberry