我是MongoDb的新手,并且正在将它与nodeJS和本机节点mongodb驱动程序一起使用。我对实施有疑问。我希望你能帮帮我: 我有这个“架构”,其中db.pages包含我网站每个部分的配置:
db.pages = [
{name: 'contacts', settings:{...}},
{name: 'blog', settings:{...}, posts: "blogPosts"},
{name: 'media', settings: {...}, posts: "mediaPosts"}
]
db.blogPosts = [
{title: 'post1', date: '2011-10-22', author:'me', content: '...'},
{title: 'post2', date: '2011-11-22', author:'me', content: '...'},
{...............................................................}
];
我在这里做的是,在每个页面中,我定义我是否有帖子集合,并且在节点中,当我加载页面时,我检查是否定义了page.posts
,如果是,则加载适当的收藏。
也许我错了,但这看起来太像关系了,所以,我的想法,就是
将blogPosts
的内容直接作为posts
集合的道具pages
的值,如下所示:
db.pages = [
{name: 'contacts', settings:{...}},
{ name: 'blog',
settings:{...},
posts: [
{title: 'post1', date: '2011-10-22', author:'me', content: '...'},
{title: 'post2', date: '2011-11-22', author:'me', content: '...'},
{...............................................................}
]
},
{name: 'media', settings: {...}, posts: [...]}
]
我认为这在NoSQL环境中更有意义,但我可能错了。
我遇到的问题是使用后一种配置,我似乎无法使nodejs将posts
字段视为mongo集合。
我希望这对你有意义,如果是的话,我需要知道的是:
find()
,sort()
,limit()
,skip()
,等等......就此而言...... 答案 0 :(得分:5)
第一种方法更好。第二种方法有许多缺点: