I have a word counting function that returns an object with a set of key value pairs. Something like this: {a: 4, tale: 3, of: 8, two: 3, cities: 3 }
Obviously this object can be of varying lengths and have different key/value pairs. I'd like to add this data to an 'article' document in Mongodb. Using mongoose.js this is the best schema I can come up with. I'm concerned that mongo is creating a ton of "Word" documents with one key/value pair and an id. Is there a better way?
in /models/article.js
mongoose.Schema({
wordcounts: [wordSchema]
})
in /models/word.js
mongoose.Schema({
word: String,
count: Number
})
So the it would end up looking like:
[{
_id: 3980923urjf0e232902343252,
wordcounts: [
{_id: 2039840297502938402934, word: "Apple", count:3},
{_id: 20398sdfsdfsdfaaa4asd3, word: "Banana", count:5}
]
}]
Is there a better way?
If you don't need indexing, you can use Schema.Types.Mixed
(see: http://mongoosejs.com/docs/schematypes.html )
Otherwise, you don't have to define a sub-collection, as you could just define it as:
mongoose.Schema({
wordcounts: [{
word: String,
count: Number
}]
})
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With