问题标签 [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.
javascript - Mongoose Pre 和 Post 钩子:停止执行查询
我正在为应用程序进行版本控制更改。我正在使用 mongoose 预挂钩根据版本控制要求在处理之前更改查询,我遇到了一种情况,我需要进行单独的查询以检查其他文档是否存在,如果它不存在必须执行当前查询,如下所示,
在上面的 find pre-hook 中,我正在尝试
- 使用查找查询检查数据库中是否存在所需的文档,如果确实存在则返回
- 如果文档不存在,我将通过设置基于默认版本的查询来执行查询。
这里的问题是 mongoose 无论如何都会执行 set 查询,它返回的结果也是我得到的this.setQuery
结果,而不是其他 DB 查询结果(doc
)。
有没有办法停止猫鼬预钩子中的默认查询执行?
任何帮助将不胜感激。
javascript - 猫鼬(建造者模式)链式方法如何在幕后工作
问题更多是关于链式方法的猫鼬实现,而不是实际的 mongo 查询。我正在为插件实现工作,我需要为其提供自定义方法,如populate
,count
等,如下所示。
我正在使用 mongoose 静态方法来创建插件特定方法,如下所示:
我正在查看 mongoose 模块存储库,它花费的时间比我想象的要多,我想知道这些链式方法是如何实现的。如果调用 find 和 populate 链接如上所示,如何确定哪些方法被链接并处理它们,
在上面的示例中,链接的方法是find
、populate
和exec
。如果有人有想法并解释它的工作方式,那将非常有帮助。
node.js - Mongodb社区-节点js中的静态数据加密
我正在寻找一种方法来加密整个数据库并保持搜索数据的能力,尽管它是加密的。
我在 Mongo 中看到了很多关于静态数据加密的问题,但没有一个答案可以帮助他们完成应用程序的完整流程。我希望在这里展示我的发现并获得反馈和更多想法(我还有一些问题)。
加密选项:
1.猫鼬加密。完整的解决方案!可以用最少的工作为您加密所有数据库!
2. Procona mongodb - 我没有机会测试它,我花了好几个小时试图安装并让它运行,但没有运气(这可能只是我自己..)。
3. 在模块级别创建 get 和 send 方法来加密和解密您的数据。
我对静态数据加密的要求是:
- 应用层不需要参与加密解密过程。应该就像我们甚至没有加密数据(大部分)。
- 我们可以对加密数据执行搜索和查找。
- 我不知道该怎么做,但希望在加密文本字段中搜索部分单词和短语。
- 当然,除了对象 ID,所有数据都是加密的。
我的方法:
我想尝试使用 mongoose-encryption 来利用这个神奇插件的所有好处。
我还想将加密字段中真实值的哈希添加到架构中,以便我可以对加密字段执行查找操作。
问题:在 mongoose-encryptions 隐藏它之前,我似乎无法找到正确的 mongoose Hook 来处理未加密的数据。所以我无法生成我的哈希。
这不起作用:
同样如上所述,在加密数据中搜索部分和短语。使用我的方法,我们可以找到名为“Danielle”的人,但我们无法在 Hash 中搜索名称以“Dani”开头的用户。
请给我您的意见以及我的方法。我知道这是一个不容易找到解决方案的话题。
node.js - mongoose 或 mongo node.js 驱动程序?
我现在正在研究 MERN Stack 项目,并且对是使用为 node.js 制作的 mongo 驱动程序还是使用 mongoose 框架感到困惑。
我无法获得这两个框架的基本细节、用法和架构。请帮我找出使用哪一个..
node.js - mongoose-mpath 模块正在创建文档但未分配给它的父级
在日志中
此处创建了文档,但未将其分配给其父级为什么会发生这种情况。
在这里你可以看到父子数组是空的
在这里,我使用 mongoose pulgin(mongoose-mpath) 创建树形数据。
对于猫鼬-mpath https://www.npmjs.com/package/mongoose-mpath
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)
node.js - 如何在 NestJs 和 typescript 中使用 `mongoose-delete` 插件?
我在 NestJs 库中使用 Mongoose,并希望对我的所有模式都使用 mongoose -delete插件。
但我不知道如何将它与 nestJS 和 Typescript 一起使用。
首先我安装了两个库mongoose-delete
,@Types/mongoose-delete
但是这个插件没有打字稿纪录片。这是通过嵌套添加插件的推荐方法:
这绝对会产生 esLint 错误:
要求语句不是导入语句的一部分。eslint
而且我不能使用delete
功能。它没有在 mongoose.Dcoument 中定义
node.js - 在 Mongoose 5.10.5 之后在 Nestjs 中添加一个全局 Mongoose 插件,带有内置类型声明
类型被添加到 Mongoose 5.10.5 中,看起来它们与@types/mongoose
. 然后我的代码不再运行:
在 Mongoose 文档中,这是添加全局插件的正确方法。但是如何将它添加到 NestJS 中?
mongodb - 带有或运算符的 Mongoose Paginate V2
我需要在 mongoose paginate V2 whit 或运算符中创建一个查询,假设我有一个这样的集合“员工”:
我想检索每月或每年每周收到 50 或更多的所有员工。如果我在控制台中运行以下查询(或没有 moongose paginate v2 插件),它将返回前两个文档
我怎样才能对 mongoose paginate V2 做同样的事情?
我使用 var newQuery 来构造查询
并在之后使用它:
node.js - 是否可以将异步方法附加到猫鼬中异步插件中的模式?
在附加异步插件时,是否可以向架构添加方法?
在上面显示的示例片段中,我正在尝试初始化和加载另一个模型,并将数据用于插件中的后续操作。
由于它是异步方法,因此在执行 promise 之前加载了插件,我得到一个错误
那么是否可以将异步方法附加到异步插件中的模式?