Я новичок в NoSQL / MongoDB, и мне нужно написать триггер на событие вставки для одной из коллекций в моей базе данных следующим образом: Имя базы данных: Название коллекции GiftShop: Схема подарков для подарков выглядит следующим образом: -
const mongoose = require("mongoose");
const userModel = require('./userModel');
const imageModel = require('./imageModel');
const giftSchema = mongoose.Schema({
name: String,
availableQuantity: Number,
price: Number,
Seller: {type: mongoose.Schema.Types.ObjectId,ref: 'UserModel'},
imageName: {type: mongoose.Schema.Types.ObjectId,ref: 'ImageModel'},
deliveryInDays: Number,category: [{type: String, ref: 'CategoryModel'}]
}, {collection: "gifts"});
module.exports = giftSchema;
У меня есть другая коллекция, названная как уведомление. Я хочу создать триггер как таковой, как только новый подарок будет вставлен в коллекцию подарков, коллекция уведомлений должна быть заполнена информацией, содержащей: идентификатор подарка, идентификатор продавца, массив идентификатора покупателя.
Схема уведомления следующая:
const mongoose = require("mongoose");
const notificationSchema = mongoose.Schema({
seller: { type: mongoose.Schema.Types.ObjectId,ref: 'UserModel'},
buyer: [{type: mongoose.Schema.Types.ObjectId,ref: 'UserModel'}],
newGift: {type: mongoose.Schema.Types.ObjectId,ref: 'GiftModel'}
}, {collection: "notifications"});
module.exports = notificationSchema;
Ниже приведена функция, которую я написал в атласе MongoDB, но у нее много проблем:
exports = function (changeEvent) {
const {fullDocument} = changeEvent;
const {buyer, seller, newGift} = fullDocument;
const collection = context.services.get("Cluster0").db("test").collection("notification");
return collection.insertOne({buyer, seller, newGift})};
настройка, которую я выполнил в атласе MongoDB для создать мой триггер:
Я вставляю новый подарок через компас MongoDB, который подключен к моему атласу MongoDB но моя коллекция уведомлений не заполняется данными, указанными в схеме уведомлений. Куда я иду не так? и как правильно написать триггер в соответствии с моим требованием? Спасибо.