我在MongoDB/Node后端使用pre和post挂钩,以便比较文档的预保存和后期保存版本,以便根据更改的内容通过模型触发器生成注释。在我的一个模型/集合中,这是工作的,但在另一个模型/集合中,它不像预期的那样工作,我不知道为什么。
在这个问题案例中,一些研究已经确定,即使我在使用save()的操作上调用一个save()钩子触发器,当我控制台出传入pre钩子的文档状态时,它已经应用了更改。换句话说,钩子不是在save()操作之前启动,而是在之后,据我所知。
以下是我的相关示范代码:
let Schema = mongoose
.Schema(CustomerSchema, {
t
为了能够比较文档的预保存和后期保存版本,我尝试在pre钩子中查找文档,然后使用它查看post保存钩子中的文档更改。
但出于某种原因,我得到了一个"Customer.findOne()不是函数“错误。这对我来说没有任何意义,因为我已经将模型导入到这个触发器文件中,然后,在我的函数中这样做:
const Customer = require("../customer");
// Get a version of the document prior to changes
exports.preSave = async function(doc) {
console.l
我想通过在使用AngularJS的mongoDB对象上使用findOneAndUpdate()来定义一个put方法。我能够成功地执行GET和POST操作,但我在定义PUT时遇到了困难。下面是我在app.js文件中定义的db对象:
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/testing23');
var idObj = Schema({
_id: String,
name : {
在我的MongoDB/Node后端环境中,我使用Mongoose pre和post钩子中间件来检查文档上发生了什么变化,以便创建一些系统注释。 我遇到的一个问题是,当我尝试查找有问题的文档的记录时,我得到一个"Customer.findOne()" is not a function错误。只有当我从模型刚刚启动这个pre和post钩子触发器文件的同一集合中查找记录时,这才是一个问题。换句话说,如果我的“客户”模型启动了外部文件中的前钩子函数中的函数,那么如果我随后尝试使用标准findOne()查找Customer,则会得到一个错误 我的客户模型如下所示: module.exp