如何在mongoDB中构造JSON数据?

伊斯比斯特

我正在网上爬行新闻报纸网站。

该站点包含文章,其中包含标题,一些文本,时间戳,作者和评论部分。

评论部分包含来自不同注册用户的评论,他们可以在其中评论文章,支持评论并回复其他评论。

我正在使用MongoDB(初学者),我的问题是在JSON对象中保存的内容是什么。

例如,每个新闻文章都将是一个对象,其中包含所有用户评论。或者将每个文本/注释作为自己的对象会更易读。

{"article": {
"id": "title of article",
"text": "text of article",
"author": "author of article",
"date": "date",
"comment_section": {
    "user": "username",
    "text": "text from comment",
    "upvotes": int,
},
}}

或类似的东西:

{"text": {
    "text_type": "article text or comment",
    "text": "text of article or comment",
    "date": "date",
    "author": "author of article or comment author",
    "upvotes": int,
}}

第一个示例中的对象较少,但是其中包含很多东西,而第二个示例中的对象却很多,但其中没有很多数据。

谢谢。

阿格斯顿·霍瓦斯(Agoston Horvath)

json的全部功能在于它是一棵树,因此单个文档可以包含其中的所有数据。您可以在子文档和投影上添加索引,以仅查询文档的必要部分。

但是,如果您希望注释部分很大,则嵌入的注释可能是个问题,因为mongodb必须读取整个文档,在注释列表中添加新的注释,然后再写回去。

理想情况下,您将寻求一个中间解决方案:保持嵌入的注释,直到少于20到50(也随文章和“下一个注释”按钮一起呈现),然后切换以将传入的注释保留在提取评论集合。这样,您可以使用单个mongo查询来呈现您的文章,从而在每次用户交互时有效地进行一个mongo查询-这是数据库设计的首选方法。

使用mongo,您将始终不得不在对象大小+更新量与将数据提取到外部集合并对它进行额外查询之间的成本之间进行权衡。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在node.js中构造特定查询以从mongodb中获取数据?

来自分类Dev

如何在Firebase中构造数据?

来自分类Dev

如何在Firebase中构造数据?

来自分类Dev

PyMongo:如何在MongoDB中批量更新巨大的JSON数据

来自分类Dev

如何在表单中更新构造函数中的数据

来自分类Dev

如何在mongodb中批量获取数据

来自分类Dev

如何在mongodb更新中设置数据

来自分类Dev

如何在SQL查询中构造此数据

来自分类Dev

如何在python中构造ICMP数据包

来自分类Dev

如何在C#中从MongoDB中以正确的JSON格式检索数据

来自分类Dev

如何在PHP中以JSON-RPC结构构造CURL?

来自分类Dev

如何在PHP中以JSON-RPC结构构造CURL?

来自分类Dev

如何在mongodb中查询JSON

来自分类Dev

如何在 MongoDB 中规范化数据模型/JSON?

来自分类Dev

如何在Django中读取json数据?

来自分类Dev

如何在JSON数据中循环键

来自分类Dev

如何在iOS中解析JSON数据

来自分类Dev

如何在sqlite中存储json数据

来自分类Dev

如何在swiftUI中显示JSON数据

来自分类Dev

如何在JavaScript中访问JSON数据?

来自分类Dev

如何在JSON数据中循环键

来自分类Dev

如何在React中映射JSON数据?

来自分类Dev

如何在Python中从Json读取数据

来自分类Dev

如何在jQuery中更改JSON数据

来自分类Dev

如何在Swift中处理JSON数据

来自分类Dev

如何在javascript中处理json数据

来自分类Dev

如何在AngularJS中更改JSON数据

来自分类Dev

如何在Django中访问JSON数据?

来自分类Dev

如何在PHP中访问.json数据?