- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将 mongoose 与 nodeJs 一起使用,并且我正在尝试实现一个在使用 insertMany 时调用的中间件。在 mongoose 文档中根本没有示例,但他们确认 insertMany 模型函数触发以下中间件:insertMany()。
我有一个基本的用户模式,我需要 insertMany 钩子(Hook)来使用 bcrypt 散列密码:
UserSchema.pre('insertMany', async function (err, docs, next) {
try{
docs.map(async function (doc, index) {
// async hash password
doc.password = await User.hashPassword(doc.password);
});
} catch (error) {
console.log(error);
}
next();
});
我不会发布所有架构,因为其余的都有效,包括密码散列和“保存” Hook 。我无法理解为什么在尝试插入许多用户时出现此错误:
next 不是函数
通常我会调用 next() 以继续执行下一个中间件,但在这种情况下它不起作用。如果我删除 next(),代码将不会继续到下一个中间件,并且在这两种情况下都不会插入用户。
有人可以帮助我吗?
最佳答案
这是因为你在回调中提供了错误的参数。 Hook 仅适用于“下一个”参数。您需要将回调函数参数从 (err, docs, next) 更改为 (next, docs),它应该适合您。
你可以在这里看到详细信息 https://mongoosejs.com/docs/middleware.html#pre
https://mongoosejs.com/docs/middleware.html#types-of-middleware
关于node.js - Mongoose Schema.pre insertMany 中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64029437/
在我的项目中,我正在制作一个系统,让用户可以创建和配置他们自己的足球锦标赛。比赛结束后,我必须将 poules 和团队放入 mongo 的比赛文件中。我不断收到以下错误: TypeError: toe
我们正在使用 MongoDB insertMany(),我想获取成功插入的文档和失败的文档。 有些文档无法插入,因为我们首先放置了唯一的文档(按电话号码),之后如果代码遇到相同的电话号码,则会将字符串
我正在尝试 insertMany() 项目进入我的 Mongo 数据库,但我想跳过重复的 ID。 我正在使用 Node.js和 mongodb . 我有一些数据: const myExampleDat
我有以下存储库类,可将数据批量插入到 CosmosDb 数据库中: public bool InsertZonierData(List zonierList) { if (zonierList
使用Mongoose进行InsertMany后,我们如何知道有多少文档已成功进入数据库? Employees.insertMany(employees) .then(functio
我对 Mongoose 和 MongoDB 本身还很陌生,我正在尝试保存一堆通过 insertMany 方法插入的文档,但它并没有保存文档。 这是我的代码: 型号: var mongoose = re
我有一个 Mongo 集合,我正在尝试将多个文档插入其中,如下所示: db.collection('properties').insertMany(docs) .catch(err => cons
Mongoose 4.4 现在有一个 insertMany 函数,它允许您验证一组文档,如果有效,则通过一个操作插入它们,而不是每个文档一个操作: var arr = [{ name: 'Star W
我很困惑为什么 Mongodb 需要两种不同的方法 insertMany 和 insertOne 来插入数据。为什么只使用 insertMany?如果要插入一个文档,比如{ a: 1 },这样写ins
我正在尝试编写以下代码并使其同步工作,但唯一的问题是它与 console.log 一起正常工作,它会在 1 秒内延迟打印数组中的每个项目,但不适用于以下结构: for (let i = 0; i {
我尝试使用 collection.insertMany() 在我的集合中插入许多记录,并对其进行了测试,但不幸的是,此测试不是确定性的(有时await有时不起作用)。为什么我这么认为,因为 colle
我正在尝试使用 inertMany 插入数据。但是我无法插入数据,为什么?我正在使用 mongoose session 如果发生任何错误,我会回滚变化 https://codesandbox.io/s
我正在尝试进行批量更新插入,但在弄清楚如何执行此操作时遇到问题。这不起作用: BasicDBObject filter = new BasicDBObject(); BasicDBOb
db.col.insertMany( [ { "_id" : "tt0084726", "title" : "Star Trek II: The
MongoDB 上的 insert()、insertOne() 和 insertMany() 方法有什么区别。我应该在什么情况下使用它们? 我阅读了文档,但不清楚何时使用每个文档。 最佳答案 What
我将 mongoose 与 nodeJs 一起使用,并且我正在尝试实现一个在使用 insertMany 时调用的中间件。在 mongoose 文档中根本没有示例,但他们确认 insertMany 模型
我有很多订单想要插入到 MongoDB 中,这些订单通过 orderID 进行唯一索引。 如果数据库中存在我的订单之一,我想插入所有订单并更新订单时间。 我尝试使用 updateMany 并将 ups
我必须在 action 集合中插入一个批处理,如下所示: [ { "userId": "57ee65fef5a0c032877725db", "postId": "57f63ce1
import { MongoClient } from 'mongodb'; import assert from 'assert'; import config from './config'; c
以下函数由 async/await 函数调用,因此我需要从 Mongoose 返回一个真正的 Promise,因此根据 documentation 使用“.exec()”和 this SO threa
我是一名优秀的程序员,十分优秀!