Как создать триггер вставки в атласе mongodb? - PullRequest
0 голосов
/ 19 апреля 2020

Я новичок в 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 для создать мой триггер: enter image description here

enter image description here

Я вставляю новый подарок через компас MongoDB, который подключен к моему атласу MongoDB но моя коллекция уведомлений не заполняется данными, указанными в схеме уведомлений. Куда я иду не так? и как правильно написать триггер в соответствии с моим требованием? Спасибо.

1 Ответ

0 голосов
/ 20 апреля 2020

Есть несколько указателей для отладки функций стежков здесь , вы должны быть в состоянии следовать им, чтобы определить, связана ли проблема с вашей функцией или триггером.

...