问题标签 [mongoose-models]
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.
mongodb - Mongoose 错误 - 具有相同型号名称的 Mongoose 型号
我正在开发 NodeJs 应用程序,并且正在使用 mongoose 节点包。
示例代码
我正在使用以下方法创建动态集合,这些集合有时无法将数据持久保存在数据库中 -
我正在使用这个导出的模块来创建基于作为suffix
参数传递的唯一 ID 的动态集合。像这样的东西(跳过不必要的代码) -
问题
问题是,测试 2 失败了!API会insertmany
导致 0 条记录未能通过计数断言。
如果我们交换测试的顺序,测试 1 将失败。
如果我分别运行这两个测试,两者都会通过。
如果有 n 个测试,只有第一个测试会通过,剩下的测试会失败。
发现
我怀疑mongoose model creation step
它有问题,因为它使用相同的型号名称,即。Model
同时创建多个模型实例。
我将其更改为以下,并且测试在所有情况下都运行良好-
问题
这给我留下了以下问题-
- 在创建动态集合时,我是否遵循正确的编码约定?
- 可疑代码是否是此问题的实际原因(型号名称也应该是唯一的)?
- 如果是,为什么会失败?(我关注了mongoose 文档,但它没有提供有关模型名称参数唯一性的任何信息。
谢谢。
node.js - 由于外国模型,钩子(中间件前)中的猫鼬模型查询(findById)错误
在这种情况下,我有两个模型:协议和注释。每个模型都有一个调用另一个模型的中间件(“pre”或“remove”)。在 Comment.js 中调用 Comment 中间件在 Protocol.findById() 处停止,因为 Protocol 是一个对象而不是模型函数。这是 Comment.js 中的 console.log(Protocol)
当const Comment = require('../models/comment')
在 Protocol.js 中删除时,Comment.js 中间件工作,控制台可以看到其中的协议如下:
我不理解这种行为。此外,反过来说,Protocol.js 中间件也能正常工作,尽管 Comment.js 有const Protocol = require('../models/protocol')
我在另一个主题中发现了一个技巧,即在中间件内部替换Protocol.findById()
为mongoose.model('Protocol').findById()
,但这并不能解释问题。
脚本如下所示。如果您需要更多信息,请告诉我,我会提供。谢谢
Protocol.js 模型和中间件
Comment.js 模型和中间件
)
包.json
mongoose - difference between Query and Model mongoose
these days i'm trying to learn more about mongoose to implement it in my project ,while going through the doc , i saw both Model and Query, both have many methods in common ,my question is what is the difference between them for example
Model.findOne()
vs Query.prototype.findOne()
, and thank you in advance.
javascript - 如何使用 mongoose 向现有 json 文件添加新属性
我有以下模型代表现有的 json 文件。
我想将进球数添加到玩家并保存。这必须在 current_club 下使用 required false 完成。当玩家决定为与现有 json 文件中存储的国家不同的国家/地区比赛时,我还想更新国籍。
我基本上想知道如何“调用”模型,穿过它并保存它。
亲切的问候
mongoose - Artist.findOne 不是函数
当我在FindArtist.js
文件中运行此代码时,我的 Electron 应用程序中出现错误:
我确实安装了猫鼬,但似乎我不再适当地导入猫鼬或艺术家模型?没有把握。
这是models/artist.js
文件:
mongodb - 如何连接/查询 Mongoose 到现有数据库
我正在尝试将 Node/Express 服务器连接到现有的 MongoDB 数据库/集合。我已经成功连接到数据库。但是,我在设置要查询的模型/模式时遇到了极大的困难。
MongoDB 是 MongoDB Atlas,拥有一个包含超过 800,000 个文档的集合。单个集合的名称是“delitosCollection”。
我尝试了以下但没有成功:
我知道连接正常,因为我收到了没有错误的 console.log。但是,results.length 在应该超过 800,000 时返回 0。在这上面花了太多时间。
javascript - 型号名称(猫鼬)的大写?
为什么模型的名称是大写的。正如在他们的文档中一样,他们已将其大写。
为什么Tank
这里要大写?有什么具体原因吗?
抱歉,如果这不是一个好问题。任何帮助,将不胜感激 :)
mongodb - 在猫鼬中使用地图方案类型时出错
我已经像这样定义了我的猫鼬模式
但是当我尝试编译代码时,出现类似
TypeError : Undefined type Map
at socialMediaHandles
Did you try nesting Schemas?您只能使用 refs 或数组进行嵌套。
node.js - 为什么模块大部分时间都返回一个空白对象?
我试图弄清楚为什么我的模块没有正确加载。这是一个猫鼬模型,但即使只返回一个字符串,有时也会返回空对象,所以它似乎与节点有关。
文章/模型/articles.js
在这里我尝试称它为:
但这就是它的输出:
为什么会这样?空物体从何而来?它显然找到了正确的文件,因为没有错误。
如果我将 module.exports = 'hi' 移动到 article.js 的顶部,那么我会得到 a、b、c 和 d 的正确“hi”。但我试图让它返回在该文档中创建的模型对象。
我无法弄清楚问题出在哪里。
编辑:这似乎是一个循环依赖问题。Articles 和 Comments 模型都具有相互引用的功能,因为它们都需要。我不明白为什么他们不能,或者如何避免(仍然保持我的代码干净)。
express - 猫鼬填充()
参考https://mongoosejs.com/docs/populate.html#checking-populated给出的 Mongoose url populate 示例,两个 Schema 之间似乎存在双向关系。例如,如果我只有一种方式的关系怎么办(使用相同的模式示例,但 Person 模式没有Story ref )
如何返回如下所示的 GET Story 输出:
我现在总是得到这个: