gpt4 book ai didi

node.js - 在 MongoDB 中分区数据的最佳实践是什么?

转载 作者:可可西里 更新时间:2023-11-01 10:04:02 25 4
gpt4 key购买 nike

我正在使用 mean stack 创建一个社交网站,我需要一些关于 mongoDB 和 mongoose 的建议。我是一家初创公司的一员,我们决定使用这些惊人的技术来完成我们的任务。

基本上,我需要一些建议。

目前,我已经完成了简单CRUD的创建,并实现了本地passport JS。我目前在我的 mongoDB 中有一个名为用户的集合。

我们的社交网站将有一个博客、市场和许多其他与单个用户相关的页面(功能)。

因为我以前从未使用过 mongoDB,所以我很好奇 mongoDB 应该为每个用户使用一个集合还是为每个功能使用多个集合。

为了澄清这一点,假设我使用用户模型进行用户注册,使用博客模型进行博客等。

如果您能尽快向我解释如何构建我的 mongoose 模型,如果所有数据都应该在一个集合中,或者如果一个用户应该为不同的功能使用单独的集合,这对我来说真的意义重大。如果您推荐多个集合,我该如何将这些集合链接在一起并确保为一个用户保存所有数据等等。

提前致谢!

最佳答案

我将解释分区/分为两级。

  1. 当然,您将为不同的模型创建不同的集合。例如用户、博客、消息等。

  2. 现在是第二部分,如果我们谈论的是数百万数据。如何对它们进行分区以加快数据查找速度。例如,您有 100 万用户,您将把这些用户放入一个大的“用户”集合中。但是,如果您要查找名字为“Imdad”且年龄为 28 岁的用户,那么现在您的查询会在单个用户集合中查找这 100 万个项目,这将花费大量时间。

为了解决这个问题,用户集合可以通过水平分区分为多个集合(Users1(年龄在10-20岁之间),Users2(年龄在20-30岁之间),Users3(年龄在30-40岁之间)。现在基于您的查询谓词 monggoDB 是查找不同的集合。这是 MongoDB 像其他 SQL DB 一样应用的想法。您不必显式地执行对 block 集合的查询,但 mongoDB 本身会处理这件事。

Shard key generation

Mongoose shard key

关于node.js - 在 MongoDB 中分区数据的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26952374/

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