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

javascript - mongoose-attachments-aws2js 上传目录

我有一个附件架构:

此模式在不同的文档中使用:事件(附件是事件图像)、用户(附件是头像)、位置(附件是位置照片)等。但我不想将所有附件上传到 1 个远程目录. 有没有办法动态更改 mongoose-attachments-aws2js 目录并为所有附件只保留 1 个模式?

0 投票
3 回答
464 浏览

node.js - 是否可以通过子句使用 `required: true` 验证?

我有以下架构:

正如您可以从预置模式定义中看到的那样,我有两个字段typetitle. 第二个 ( title) 必须是required: trueonly if typeis(one | two)并且必须是falseif type is three

我怎么能用猫鼬做呢?

编辑:感谢您的回答。我还有一个相关的问题要在这里问:

如果不需要,我可以删除字段吗?假设类型 ifthree但也提供了title字段。为了防止存储不必要title的在这种情况下如何删除它?

0 投票
2 回答
3227 浏览

node.js - 在猫鼬预中间件中,我如何访问更新查询?

我正在尝试使用新的不稳定版本的 mongoose >4.0.0 来验证更新查询。

说我想使用以下查询更新架构

所以可以说我有以下架构,

如何在预中间件中获取 {set:{a:'blah'}} 的更新查询,以便在执行更新之前进行一些检查?

或者我知道可以在 post 中间件中访问更新查询,在

但这为时已晚,我需要在预中间件中进行检查,然后再实际更新数据库。

我尝试查看 pre 中间件的“this”对象,但在任何地方都找不到 updateQuery 对象,并且 this._update 在 pre 中间件中未定义。

有没有办法做到这一点?谢谢

0 投票
0 回答
49 浏览

json - Is mongoose capable of having pluggable backends other than MongoDB, like plain, old JSON files on the filesystem as a datastore?

We have a tool that is normally used on a server (in the cloud, behind the firewall, etc). It uses Mongoose with MongoDB.

We now need to use our tool as a standalone app on a laptop and want to reuse the code that uses Mongoose. We are considering the possibility of not requiring our customers to install MongoDB on each laptop. The tool on the laptop will run as a service, headless, and will be the only process touching the data that's stored via Mongoose.

Does Mongoose offer support for pluggable backends? Is there an embeddable Mongoose backend we can use? Storage via plain, old JSON text files would be fine, unless there's something better out there.

Thanks, Matthew

0 投票
1 回答
60 浏览

javascript - 根据其他集合的查询更新文档

Mongodb 中是否有可能根据对其他集合中文档“计数”的查询来更新文档?我正在寻找使其成为原子操作的选项。

更具体地说,以下是这两个集合的设计方式:

书籍(收藏)

_id 名称 isReviewed [布尔]

评论(收藏)

_id bookID [_id in Books Collection] 评论

我提出了这个设计,因为一本书的“评论”数组将不断增长并且是可变的。现在,当有“Review”文档时,需要将“Book”文档中的 isReviewed 标志设置为“true”。为各自的书创建。只要一本书至少存在一个相关评论,该标志就会保持“真实”。

当一本书没有评论时,相同的标志将设置为“false”。(创建图书文档时,该标志的默认值为“false”)删除评论时,计算一本书的评论计数,看是否可以将其设置为“false”。(如果 count 为 0,则设置为 false)。

该系统专为共享书籍和评论等所有资源的多用户环境而设计。所有用户都被授予对所有资源的读/写权限。(我知道允许所有用户能够创建/读取/编辑/删除所有评论听起来很奇怪,但是,假设在功能上就是这样)。

现在,考虑到上述情况,我如何确保根据“评论”集合中的“计数”执行与设置“isReviewed”标志相关的更新?

这是一个没有交易就无法解决的案例(我的意思是,我需要 RDBMS)吗?我也愿意重新设计我的收藏。

任何帮助表示赞赏,谢谢

0 投票
1 回答
2529 浏览

node.js - MongoDB中的文本搜索,关键字搜索

我正在尝试在我的 mongoDB 数据库中进行关键字搜索。在 mongoDB 控制台中:

给出正确的结果。但是当我在我的 nodejs 控制器上使用 mongoose-text-search 时,我得到了一个错误。这是模式的定义:

在控制器中,在某些时候我会:

回应是:

现在,仅凭该消息就会使您认为文本搜索不起作用,但正如我之前所展示的那样。我正在运行 MongoDB shell 版本 3.0.2,因此默认情况下启用文本搜索。

0 投票
1 回答
900 浏览

node.js - 在猫鼬中深度填充自引用模式

我在猫鼬中有一个自引用员工模式。

一个员工可以是经理,也可以有多个报告人。如果 manager 为 null,则该员工被视为顶级员工。

我需要基于这个模型创建层次结构。我正在努力生成所需的输出。

到目前为止,我已尝试使用popluate()和mongoose -deep-populate模块,但我无法获得所需的输出。我想知道它是因为我有一个自引用模型。或者可能是我没有正确使用这两个选项。

这是我用deep-populate模块尝试过的。它似乎正在填充reportee 模型,而不是reportee 模型的repotree。简而言之,它仅填充 1 级记录

请建议我如何检索所有员工层次结构?

0 投票
1 回答
2254 浏览

mongoose - Mongoose 的“插件”方法的头文件(通过 .methods 和 .statics 扩展)

我正在尝试使用 .plugin 方法为扩展我的 Mongoose 模型的脚本创建 Typescript 头文件。Mongoose 头文件的当前签名:

Mongoose-lib 的一些实际代码:

然后是我自己的模型,扩展插件

来自护照本地猫鼬来源的片段:

我的主 app.js 出现问题

问题是 .authenticate 等是通过.methods.statics动态添加的...

我找不到在打字稿头文件中对此进行建模的方法。

我尝试了泛型和东西,但我不能(动态)将提供插件方法应用回原始模型。我还尝试plugin返回泛型T extends S & P(其中 S 从第一个参数扩展 Schema 和 P = 插件本身)。没运气 :-(

任何建议或示例如何解决这个问题?

0 投票
0 回答
291 浏览

node.js - 只有在未定义的情况下如何更新字段?如果定义不更新,但更新其他字段

我有以下文件:

在测试用例 [0] 的位置,我有一个没有“startDate”字段的测试用例。如果我更新测试用例 [0] 应该使用当前系统的日期创建“startDate”字段,:

但是如果我要更新 testcase[0] 应该只更新“stateTestCase”字段而不是只能更新一次的“startDate”字段。

可以在猫鼬中做到这一点吗?如果是,那怎么办?

0 投票
2 回答
337 浏览

node.js - Other nosql database than mongodb with mongoose?

I would like to use another platform than mongodb with mongoose.

I used mongoose in my school project, and my school ask me to have a multiple database project.

Any idea ? I don't want to duplicate my code..

Thanks