【问题标题】:How to store data in a MongoDB collection as a heap?如何将 MongoDB 集合中的数据存储为堆?
【发布时间】:2016-01-01 14:58:25
【问题描述】:

我正在为我的 Web 应用程序使用 MEAN 堆栈,其中包含可以作为堆结构最有效地存储和访问的数据。我的应用程序将进行多次调用(大约每分钟几百次)来检索集合中的最小元素并每次独立使用它。由于我想使用 Node.js 和 MongoDB(因此是 MEAN 堆栈),我想知道如何将数据构建为堆。

理想情况下,我想以某种方式将npm's heap 合并到 MEAN 堆栈的 MongoDB 和/或 Mongoose 中。但我不确定在哪里以及如何。

是的,我可以使用 MongDB 的 sort(),但这意味着我必须每次都对集合进行排序,基于 answer says

db.the_collection.find().sort({the_field: 1}).limit(1) 

每分钟对基本相同的事物进行数百次分类会很糟糕,不是吗?或者 MongoDB 是否非常高效以至于它可以处理这个问题?

有人还提到了 $min。我不知道它是否会有所帮助,因为我什至不知道 how it workssort() 相比。

【问题讨论】:

    标签: node.js mongodb mongoose npm mean-stack


    【解决方案1】:

    在做了更多研究之后,我决定在我的 Mongoose 模式中放置一个复杂的索引,然后使用 MongoDB 的 find() 和 sort()。详情请见this

    【讨论】:

      【解决方案2】:

      好的,MongoDB 是一个以文档为中心的存储库,用于存储 JSON 文档(实际上是 BSON,但现在让我们保持简单)。而且,Heap 是一种特殊的树。我的假设是您将堆建模为 JSON 文档,并且必须在 JavaScript 中编写插入和检索方法。我会再玩这个,但也许这项研究会帮助你走得更远。

      所以,这里有两个很好的研究可以帮助你:

      1. 在文档数据库中建模树here
      2. 在键值存储here 中存储目录层次结构。 (是的,我知道 MongoDB 在技术上不是 KV 存储,但帖子中有很好的信息...)

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-05
      • 2015-06-13
      相关资源
      最近更新 更多