适当的方式为dynamic数量的键/值对创buildmongoose模式

我有一个字计数函数返回一个对象与一组键值对。 像这样的: {a: 4, tale: 3, of: 8, two: 3, cities: 3 }

显然,这个对象可以是不同的长度,并且具有不同的键/值对。 我想将这些数据添加到Mongodb的“文章”文档中。 使用mongoose.js这是我能想到的最好的模式。 我担心mongo会用一个键/值对和一个id创build大量的“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} ] }] 

有没有更好的办法?

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

否则,您不必定义子集合,因为您可以将其定义为:

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