gpt4 book ai didi

node.js - Mongodb - 子集合?

转载 作者:可可西里 更新时间:2023-11-01 09:25:16 24 4
gpt4 key购买 nike

我是 MongoDb 的新手,我正在将它与 nodeJS 和 native Node 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: '...'},
{...............................................................}
];

我在这里做的是,在每个页面中,我定义我是否有一个帖子集合,并且在 Node 中,当我加载页面时,我检查是否定义了 page.posts 并且,如果是,则加载适当的集合。

也许我错了,但这看起来太像一种关系了,所以我的想法是将 blogPosts 的内容直接作为 pages 集合的属性 posts 的值,如下所示:

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 集合。

我希望这对您有意义,如果是的话,我需要知道的是:

  1. 我认为第二种方法是正确的方法是对还是错?
  2. 我如何使用 Node 将“子集合”读取为集合,以便我可以应用游标并使用 find()sort()limit(), skip() 等等,在上面...

最佳答案

第一种方法更好。第二种方法有多个缺点:

  1. 每个文档的大小限制为 16MB。您将达到该限制并且将无法添加更多博客文章
  2. 您不能从磁盘中查询和获取单个博客文章,因为它们都在一个大文档中
  3. 如果你应用这个原则,那么你将把所有的评论也放在同一个页面文档中,使它变得更加复杂并且会失去很多灵 active

关于node.js - Mongodb - 子集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9633979/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com