gpt4 book ai didi

mongoose - 是否有用于数据访问的 Mongoose 事件?

转载 作者:行者123 更新时间:2023-12-05 07:16:57 31 4
gpt4 key购买 nike

我正在我的应用程序中做一些测试,看看内存缓存是否真的在工作。但是,由于 memory-cache 显然没有公开“命中”事件,我无法判断是否真的从缓存中获取数据。所以我试着看看当应用程序实际从数据库中获取一些数据时是否会触发 Mongoose 事件,但似乎又没有。我想知道是否有这样的事件?如果是的话,它是哪一个?我尝试使用这段代码。

mongoose.on("open", () => {
console.log("Open DB conn");
});

但只有在我最初连接到数据库时应用程序启动时才会被触发。

最佳答案

Mongoose 中没有评估或审计内存缓存的事件。您所指的事件与连接本身有关。 connectingconnectedopenclose 等项就是此类事件的示例。您可以在 documentation 中查看完整的连接事件列表。 .

根据您是否指定了单独的存储引擎,mongodb 的默认值为 WiredTiger .

要确定您是否正在从 WiredTiger 访问缓存内存,您可以引用为 this 选择的答案。堆栈帖子,其中指出:

Any query will result in WiredTiger loading the document from disk into its part of memory (the so-called "cache") in an uncompressed form. Therefore all query replies are served from the "cache".

至于审计是否使用缓存内存的方法或函数,我一时想不起来。您可以弄清楚的一种方法是确定启用缓存与禁用/清除缓存时查询需要多长时间。删除缓存查询的一种方法是使用 db.collection.getPlanCache().clear()

如果启用缓存后查询时间更快,那么您就知道缓存正在工作。

关于mongoose - 是否有用于数据访问的 Mongoose 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58997252/

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