
MongoDB Taxonomy Schema
By: a guest on May 16th, 2011 | syntax:
JavaScript | size: 1.05 KB | hits: 361 | expires: Never
db.article.insert({title:'wealth news article', taxonomy:[{key:'section', term:'News', slug:'news'}, {key:'topics', term:'Wealth', slug:'wealth'}]})
db.article.insert({title:'retirement news article', taxonomy:[{key:'section', term:'News', slug:'news'}, {key:'topics', term:'Retirement', slug:'retirement'}]})
db.article.insert({title:'wealth blog article', taxonomy:[{key:'section', term:'Blogs', slug:'blogs'}, {key:'topics', term:'Wealth', slug:'wealth'}]})
db.article.insert({title:'retirement blog article', taxonomy:[{key:'section', term:'Blogs', slug:'blogs'}, {key:'topics', term:'Retirement', slug:'retirement'}]})
db.article.ensureIndex({'taxonomy.key':1,'taxonomy.term':1})
db.article.ensureIndex({'taxonomy.key':1,'taxonomy.slug':1})
db.article.find({taxonomy:{$elemMatch:{'key':'section', 'term':'News'}}}).explain()
db.article.find({taxonomy:{$elemMatch:{'key':'section', 'slug':'news'}}}).explain()
db.article.find({taxonomy:{$all:[{$elemMatch:{'key':'section', 'slug':'news'}},{$elemMatch:{'key':'topics', 'slug':'retirement'}}]}}).explain()