[英]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.