如何将 MongoDB 集合中的数据存储为堆?
How to store data in a MongoDB collection as a heap?
我正在为我的 Web 应用程序使用 MEAN 堆栈,它包含可以作为堆结构最有效地存储和访问的数据。我的应用程序将有很多次调用(大约每分钟几百次)来检索集合中的最小元素,并且每次都独立地使用它。由于我想使用 Node.js 和 MongoDB(因此是 MEAN 堆栈),我想知道如何将数据构建为堆。
理想情况下,我想以某种方式将 npm's heap 合并到 MEAN 堆栈的 MongoDB and/or Mongoose 中。但我不确定在哪里以及如何。
是的,我可以使用 MongDB 的 sort(),但这意味着我每次都必须根据此 answer says
对集合进行排序
db.the_collection.find().sort({the_field: 1}).limit(1)
基本上相同的东西每分钟排序数百次会很糟糕,不是吗?还是 MongoDB 非常高效以至于可以处理这个问题?
也有人提到 $min。我不知道它是否有帮助,因为我什至不知道 与 sort()
相比。
好的,MongoDB 是一个以文档为中心的存储库,存储 JSON 文档(确实是 BSON,但现在让我们保持简单)。并且,Heap 是一种特殊的树。我的假设是您将堆建模为 JSON 文档,并且必须在 JavaScript 中编写插入和检索方法的代码。我打算再尝试一下,但也许研究会帮助你走得更远。
因此,这里有两项重要的研究可以帮助您:
- 在文档数据库中建模树 here。
- 在键值存储中存储目录层次结构here。 (是的,我知道 MongoDB 在技术上不是 KV 存储,但 post 中有很好的信息...)
在做了更多研究之后,我决定在我的 Mongoose 模式中放置一个复杂的索引,然后使用 MongoDB 的 find() 和 sort()。有关详细信息,请参阅 。
我正在为我的 Web 应用程序使用 MEAN 堆栈,它包含可以作为堆结构最有效地存储和访问的数据。我的应用程序将有很多次调用(大约每分钟几百次)来检索集合中的最小元素,并且每次都独立地使用它。由于我想使用 Node.js 和 MongoDB(因此是 MEAN 堆栈),我想知道如何将数据构建为堆。
理想情况下,我想以某种方式将 npm's heap 合并到 MEAN 堆栈的 MongoDB and/or Mongoose 中。但我不确定在哪里以及如何。
是的,我可以使用 MongDB 的 sort(),但这意味着我每次都必须根据此 answer says
对集合进行排序db.the_collection.find().sort({the_field: 1}).limit(1)
基本上相同的东西每分钟排序数百次会很糟糕,不是吗?还是 MongoDB 非常高效以至于可以处理这个问题?
也有人提到 $min。我不知道它是否有帮助,因为我什至不知道 sort()
相比。
好的,MongoDB 是一个以文档为中心的存储库,存储 JSON 文档(确实是 BSON,但现在让我们保持简单)。并且,Heap 是一种特殊的树。我的假设是您将堆建模为 JSON 文档,并且必须在 JavaScript 中编写插入和检索方法的代码。我打算再尝试一下,但也许研究会帮助你走得更远。
因此,这里有两项重要的研究可以帮助您:
- 在文档数据库中建模树 here。
- 在键值存储中存储目录层次结构here。 (是的,我知道 MongoDB 在技术上不是 KV 存储,但 post 中有很好的信息...)
在做了更多研究之后,我决定在我的 Mongoose 模式中放置一个复杂的索引,然后使用 MongoDB 的 find() 和 sort()。有关详细信息,请参阅