【发布时间】:2012-03-26 21:35:01
【问题描述】:
我真的是 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的内容作为pages集合的propposts的值,像这样:
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()等...
【问题讨论】: