问题标签 [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 投票
4 回答
7833 浏览

javascript - 你如何从猫鼬中删除模型?

我的意思不是删除一个或多个文件。我的意思是完全删除模型,这样猫鼬就不再知道它了。声明模型后,我不知道如何让猫鼬忘记该模型以便重新创建它。

目前上述抛出异常。

OverwriteModelError:编译后无法覆盖“书”模型。

我希望能够做这样的事情......

...并且不会出现任何错误。有任何想法吗?

0 投票
3 回答
5428 浏览

node.js - 错误:未启用文本搜索:- 在 mongodb

我收到以下错误:-

我正在运行以下函数,它本质上是一个 mongoose-mongodb 操作。

我正在尝试实现mongoose-text-search插件

0 投票
1 回答
902 浏览

javascript - 护照猫鼬对象#没有“身份验证”方法,但我可以看到该方法

我遇到了一个没有意义的问题,无法弄清楚希望有人能提供帮助。

我正在使用一些猫鼬插件,现在也尝试集成护照。我已经添加了 passport-local-mongoose 插件,如下所示,但是我收到了该方法不存在的错误。将架构记录到控制台时,我可以看到列出的方法,所以我不确定它为什么不存在。

代码示例:

控制台日志摘录如下:

但我收到以下错误:

我可以看到该方法可用,为什么我无法访问它。如果我遗漏了一些基本的东西,我深表歉意,我仍在学习其中的一些东西。感谢您的任何帮助。

0 投票
1 回答
738 浏览

node.js - how to override function of mongoose plugin?

I have a plugin in mongoose and for each schema i am doing the following

The problem is the createCustomDoc method is also defined in myplugin. Now i want to override createCustomDoc of myplugin with the method defined as user.statics.createCustomDoc.

Currently the method called is from the plugin not the one i wrote in user.statics.createCustomDoc.

How do i do that.?

Of course i do not want to change the name of function nor i want to remove the plugin nor i want to change code of plugin.

0 投票
1 回答
2805 浏览

node.js - 使用 mongoose 和 mongoose-version 更新条目时的新版本

我正在尝试使用 mongoose 跟踪 mongo 数据库中某些文档中的所有修订。出于这个原因,我决定使用插件 mongoose-version。

当我创建一个新文档并将其添加到数据库中时,我可以看到一个版本保存在存储不同版本的集合中。但是,当我使用新文档更新文档时,我可以看到存储文档(最新版本)的集合中所做的更改,但看不到存储在版本化数据库中的新版本。任何线索为什么会发生这种情况?

这是我的架构:

这就是我创建用户的方式:

这就是我更新用户详细信息的方式(本质上只有名称可以更改,但在我学习时仅用于演示目的)。

任何帮助或提示将不胜感激,因为我也是使用 mongo 和 mongoose 的新手。

0 投票
1 回答
512 浏览

node.js - 猫鼬搜索产生神秘错误

我正在使用 Mongoose-Text-Search 插件 ( https://github.com/aheckmann/mongoose-text-search ) 来搜索我的 mongodb 数据库,但我收到了一条我从未见过的非常令人困惑的错误消息前。

有人可以解释这是什么意思吗?我想我正确使用了文本搜索插件,但我一辈子都无法弄清楚这里出了什么问题。

谢谢!

0 投票
1 回答
803 浏览

node.js - Passport-Local-Mongoose – 当我更新记录的用户名时,我退出了,为什么?

我正在使用带有护照的 MEAN 堆栈和 Passport-Local-Mongoose 插件。但是,每当我更新用户记录的用户名时,我都会退出当前会话。使用 Passport-Local-Mongoose 更新用户名的正确方法是什么?

0 投票
1 回答
394 浏览

mongodb - Mongo:$exists 字段的索引

我有以下猫鼬模式:

对于某些 dataObjects,eventCount 已定义且为正数,对于其他 dataObjects,eventCount 未定义。我想设计一个索引,使这样的查询尽可能快:

做这个的最好方式是什么?

这是我能想到的最佳解决方案,但我很想知道是否有人有更好的解决方案:

将 isEventCount 布尔变量添加到 dataSchema。设置 mongoose 中间件,以便在使用以下逻辑将对象保存到 db 之前计算 isEventCount。

然后建立这样的索引

并像这样运行我的查询

这种方法有几个缺点。即:

  1. 我正在数据库中保存冗余信息。
  2. 我必须编写额外的中间件代码来实现这一点。
  3. 我必须修改数据库中的现有条目。

有人知道更好的解决方案或可以帮助解决此问题的库吗?

0 投票
1 回答
1588 浏览

javascript - 在 Mongoose 模型中访问 Express.js 请求上下文

我正在与我的同事使用Express.jsMongoose开发一个 REST API 。

对于某些 Mongoose Model methodsstatics我们需要将Express.js Request对象作为添加的上下文信息源,例如当前正在执行请求的经过身份验证的用户。

我们目前所做的是通过原型化函数将调用的自定义属性附加到a的context上下文Model中。thisMongooseModel

问题是我们遇到了一个令人讨厌的错误,这让我们意识到,虽然在实例Model.methods上调用了, 却可以正常工作。Model

对于在“类”Model.statics上被调用的人,其范围由整个应用程序共享,这意味着如果您有并发请求,如果您在请求处理中有任何异步行为,它们将覆盖彼此的值.Modelsingletonthis.context

现在我的问题如下:

  • Express.js在和函数Mongoose中保持和访问上下文request的最佳实践是什么?Model.staticsModel.methods

当然,有一些可能的黑客来模拟遏制,例如:

  1. Function.bind()Model添加请求上下文的每个函数。

    -> 这意味着如果在Model.statics.a()内部调用Model.statics.b(), 函数b()不会有this.context.

  2. 使用对象with() {}上的语句并调用该范围内的request每个函数。Model

    -> 这会很脏而且很慢。

  3. vm使用标准 Node.js 模块创建具有单独范围的容器。

    -> 与 (2) 相同,性能会受到很大影响。

有任何想法吗 ?先感谢您 !

0 投票
1 回答
1665 浏览

node.js - Mongoose:在 Schema 静态方法中使用插件

我使用猫鼬随机插件
在我的模式定义中,我调用

之后,我有一个使用插件的自定义静态方法:

我得到了错误

有没有办法实现我想要做的事情,或者我应该实现某种存储库?

编辑:
本的回答有效,我需要在模型上使用 findRandom 而不是模式。
就我而言,精确度:您需要首先声明您的静态函数

然后注册您的架构

否则你会得到“模型......没有方法'someMethod'”
静态函数中的游戏变量是公认的事件,尽管它只是在脚本的后面定义。
=> 奖金问题:有人知道它为什么有效吗?