2015-11-13 32 views
4

我有一個字計數函數,它返回一組具有一組鍵值對的對象。像這樣:{a: 4, tale: 3, of: 8, two: 3, cities: 3 }爲動態數量的鍵/值對創建貓鼬模式的正確方法

很明顯,這個對象可以是不同的長度和不同的鍵/值對。我想將這些數據添加到Mongodb中的「文章」文檔中。使用mongoose.js這是我能想出的最好的模式。我擔心mongo用一個鍵/值對和一個id創建大量的「Word」文檔。有沒有更好的辦法?

在/models/article.js

mongoose.Schema({ 
    wordcounts: [wordSchema] 
}) 
在/models/word.js

mongoose.Schema({ 
    word: String, 
    count: Number 
}) 

所以它最終會看起來像

[{ 
_id: 3980923urjf0e232902343252, 
wordcounts: [ 
    {_id: 2039840297502938402934, word: "Apple", count:3}, 
    {_id: 20398sdfsdfsdfaaa4asd3, word: "Banana", count:5} 
    ] 
}] 

有更好的方法?

回答

4

如果你不需要建立索引,可以使用Schema.Types.Mixed(參見:http://mongoosejs.com/docs/schematypes.html

否則,你不必定義一個子集,因爲你可以只把它定義爲:

mongoose.Schema({ 
    wordcounts: [{ 
    word: String, 
    count: Number 
    }] 
}) 
+0

謝謝,我會試試看! –

+0

這個工程!它還爲wordcounts數組中的每個單詞文檔分配一個id。 –