【发布时间】:2020-04-23 18:51:37
【问题描述】:
我有以下触发功能,但不是功能。我想知道为什么它没有设置字段 createdAt:
const collection = context.services.get("comand-dev").db("test").collection("ownerDetails");
const docId = changeEvent.documentKey._id;
collection;
collection.updateOne(
{_id : docId} ,
{
$set :
{
createdAt: Date()
}
}
);
触发器日志显示正常,但该字段不存在
【问题讨论】:
-
集合中是否有 _id 为 docId 的文档?
-
我想是这样,我该如何调试?触发器是在每个 insert 上创建的,所以此时可能还没有创建 _id?触发器是在实际插入之前还是之后运行?
-
什么是
changeEvent,它来自哪里? -
changeEvent 来自触发器本身。请看docs.mongodb.com/manual/reference/change-events/#insert-event。似乎 _id 存在所以这不是我的触发器的问题
-
1) 触发器类型是什么? 2) 检查触发器是否启用 3) 触发器申请什么操作类型? 4)检查它是否用于正确的服务名称,即'command-dev' 5)检查它是否用于正确的数据库/集合。
标签: mongodb mongodb-atlas