问题标签 [mongoose-plugins]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
329 浏览

javascript - Mongoose Pre 和 Post 钩子:停止执行查询

我正在为应用程序进行版本控制更改。我正在使用 mongoose 预挂钩根据版本控制要求在处理之前更改查询,我遇到了一种情况,我需要进行单独的查询以检查其他文档是否存在,如果它不存在必须执行当前查询,如下所示,

在上面的 find pre-hook 中,我正在尝试

  • 使用查找查询检查数据库中是否存在所需的文档,如果确实存在则返回
  • 如果文档不存在,我将通过设置基于默认版本的查询来执行查询。

这里的问题是 mongoose 无论如何都会执行 set 查询,它返回的结果也是我得到的this.setQuery结果,而不是其他 DB 查询结果(doc)。

有没有办法停止猫鼬预钩子中的默认查询执行?

任何帮助将不胜感激。

0 投票
0 回答
88 浏览

javascript - 猫鼬(建造者模式)链式方法如何在幕后工作

问题更多是关于链式方法的猫鼬实现,而不是实际的 mongo 查询。我正在为插件实现工作,我需要为其提供自定义方法,如populate,count等,如下所示。

我正在使用 mongoose 静态方法来创建插件特定方法,如下所示:

我正在查看 mongoose 模块存储库,它花费的时间比我想象的要多,我想知道这些链式方法是如何实现的。如果调用 find 和 populate 链接如上所示,如何确定哪些方法被链接并处理它们,

在上面的示例中,链接的方法是findpopulateexec。如果有人有想法并解释它的工作方式,那将非常有帮助。

0 投票
1 回答
619 浏览

node.js - Mongodb社区-节点js中的静态数据加密

我正在寻找一种方法来加密整个数据库并保持搜索数据的能力,尽管它是加密的。

我在 Mongo 中看到了很多关于静态数据加密的问题,但没有一个答案可以帮助他们完成应用程序的完整流程。我希望在这里展示我的发现并获得反馈和更多想法(我还有一些问题)。

加密选项:

1.猫鼬加密。完整的解决方案!可以用最少的工作为您加密所有数据库!
2. Procona mongodb - 我没有机会测试它,我花了好几个小时试图安装并让它运行,但没有运气(这可能只是我自己..)。
3. 在模块级别创建 get 和 send 方法来加密和解密您的数据。

我对静态数据加密的要求是:

  1. 应用层不需要参与加密解密过程。应该就像我们甚至没有加密数据(大部分)。
  2. 我们可以对加密数据执行搜索和查找。
  3. 我不知道该怎么做,但希望在加密文本字段中搜索部分单词和短语。
  4. 当然,除了对象 ID,所有数据都是加密的。

我的方法:
我想尝试使用 mongoose-encryption 来利用这个神奇插件的所有好处。
我还想将加密字段中真实值的哈希添加到架构中,以便我可以对加密字段执行查找操作。

问题:在 mongoose-encryptions 隐藏它之前,我似乎无法找到正确的 mongoose Hook 来处理未加密的数据。所以我无法生成我的哈希。

这不起作用:

同样如上所述,在加密数据中搜索部分和短语。使用我的方法,我们可以找到名为“Danielle”的人,但我们无法在 Hash 中搜索名称以“Dani”开头的用户。

请给我您的意见以及我的方法。我知道这是一个不容易找到解决方案的话题。

0 投票
0 回答
16 浏览

node.js - mongoose 或 mongo node.js 驱动程序?

我现在正在研究 MERN Stack 项目,并且对是使用为 node.js 制作的 mongo 驱动程序还是使用 mongoose 框架感到困惑。

我无法获得这两个框架的基本细节、用法和架构。请帮我找出使用哪一个..

0 投票
1 回答
116 浏览

node.js - mongoose-mpath 模块正在创建文档但未分配给它的父级

在日志中

此处创建了文档,但未将其分配给其父级为什么会发生这种情况。

在这里你可以看到父子数组是空的

在这里,我使用 mongoose pulgin(mongoose-mpath) 创建树形数据。

对于猫鼬-mpath https://www.npmjs.com/package/mongoose-mpath

0 投票
0 回答
31 浏览

mongoose - 我在这个 repo 上遇到了猫鼬错误 http://github.com/ejnshtein/mangadex_bot

throw new MongooseError('openUri() 的 uri 参数必须是 ' +2021-03-12T06:02:23.123610+00:00 app[web.1]: ^2021-03-12T06:02:23.123610+00: 00 app[web.1]: 2021-03-12T06:02:23.123612+00:00 app[web.1]: MongooseError: The uri parameter to openUri() must be a string, got "object"。确保mongoose.connect() 或 mongoose.createConnection() 的第一个参数是一个字符串。2021-03-12T06:02:23.123613+00:00 app[web.1]: 在 NativeConnection.Connection.openUri (/app/node_modules/ mongoose/lib/connection.js:688:11)2021-03-12T06:02:23.123614+00:00 app[web.1]: 在 Mongoose.createConnection (/app/node_modules/mongoose/lib/index.js: 288:17)2021-03-12T06:02:23.123615+00:00 应用程序[web.1]:在文件:///app/core/database/index.js:5:202021-03-12T06:02: 23.123616+00:00 app[web.1]: 在 ModuleJob.run (node:internal/modules/esm/module_job:154:23)2021-03-12T06:02:23.123616+00:00 app[web.1]: 在异步 Loader.import (node:internal/modules/esm/loader:166:24)2021-03-12T06:02: 23.123617+00:00 app[web.1]: 在异步 Object.loadESM (node:internal/process/esm_loader:68:5)

0 投票
2 回答
882 浏览

node.js - 如何在 NestJs 和 typescript 中使用 `mongoose-delete` 插件?

我在 NestJs 库中使用 Mongoose,并希望对我的所有模式都使用 mongoose -delete插件。

但我不知道如何将它与 nestJS 和 Typescript 一起使用。

首先我安装了两个库mongoose-delete@Types/mongoose-delete但是这个插件没有打字稿纪录片。这是通过嵌套添加插件的推荐方法:

这绝对会产生 esLint 错误:

要求语句不是导入语句的一部分。eslint

而且我不能使用delete功能。它没有在 mongoose.Dcoument 中定义

0 投票
0 回答
173 浏览

node.js - 在 Mongoose 5.10.5 之后在 Nestjs 中添加一个全局 Mongoose 插件,带有内置类型声明

类型被添加到 Mongoose 5.10.5 中,看起来它们与@types/mongoose. 然后我的代码不再运行:

在 Mongoose 文档中,是添加全局插件的正确方法。但是如何将它添加到 NestJS 中?

0 投票
1 回答
29 浏览

mongodb - 带有或运算符的 Mongoose Paginate V2

我需要在 mongoose paginate V2 whit 或运算符中创建一个查询,假设我有一个这样的集合“员工”:

我想检索每月或每年每周收到 50 或更多的所有员工。如果我在控制台中运行以下查询(或没有 moongose paginate v2 插件),它将返回前两个文档

我怎样才能对 mongoose paginate V2 做同样的事情?

我使用 var newQuery 来构造查询

并在之后使用它:

0 投票
0 回答
27 浏览

node.js - 是否可以将异步方法附加到猫鼬中异步插件中的模式?

在附加异步插件时,是否可以向架构添加方法?

在上面显示的示例片段中,我正在尝试初始化和加载另一个模型,并将数据用于插件中的后续操作。

由于它是异步方法,因此在执行 promise 之前加载了插件,我得到一个错误

那么是否可以将异步方法附加到异步插件中的模式?