繁体   English   中英

如何在mongoDB中将100万个父母中的数百万个孩子存储起来

[英]How to store millions of children in 100 parents in mongoDB

我正在开发一个Node.js服务器,它将每60秒将孩子添加到100个不同的父母中。

父母有100个不同的市场:

父母

子项是包含一些数据的时间戳: 孩子们

      ...millions of more timestamps

数据库中的时间戳将超过数百万。 我正在考虑将祖先上的数组存储在每个父级(仅100个)中的子级(时间戳)数组,因此我认为该数组将包含数百万个对象。 这样安全吗?

我正在使用mLab,并按照MongoDB Docs上的教程使用以下方法创建数据库:

db.collection('database').insert({ _id: "data", ancestors: [], parent: null })
db.collection('database').insert({ _id: "ADABTC", ancestors: ["data"], parent: "data" })
db.collection('database').insert({ _id: "entry", ancestors: ["ADABTC", "data"], parent: "ADABTC" })

但是我最终得到了我无法理解的东西。 我对Firebase非常熟悉,但是由于存储海量数据的成本,尝试从Firebase切换到MongoDB感到困惑。 玛拉

我可以在Node.js中使用哪些方法来实现此数据结构?

正如评论所说,这里没有一个正确的答案。 您将如何向mongo数据存储中添加记录和从中获取数据将影响决策。 我无法在评论中给出此建议,因为我想显示一个格式化的示例。 因此,发布内容作为答案,即使我并不认为这是一个正确的答案。

您可能需要考虑将其设置为扁平状,如下所示。 速度成为索引的问题。 它们易于创建且便宜。 下面可能需要一个名称索引和一个名称时间戳。 以下是有关如何执行此操作的详细信息: https : //docs.mongodb.com/manual/reference/method/db.collection.createIndex/

{
  {
    name: "ADABTC",
    timestamp: 1521421385793,
    close: 0.00001962,
    high: 0.00001962,
    etc...
  },
  {
    name: "ADABTC",
    timestamp: 1521421385793,
    close: 0.00001962,
    high: 0.00001962,
    etc...
  },
  {
    name: "AIONBTC",
    timestamps: 1521421385793,
    close: 0.00001962,
    high: 0.00001962,
    etc...
  },
  etc...
}

如果这变得太大(Mongo可以轻松处理数百万条记录),那么您可能希望将每个市场划分为自己的集合。 尽管根据您的查询/报告标准,这可能不太理想。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM