Есть такой код:
reviewSchema.statics.getAverageRating = async function(card) {
console.log(card);
const obj = await this.aggregate([
{
$match: { card: card }
},
{
$group: {
_id: "$card",
averageRating: { $avg: "$rating" },
ratingParams: { $avg: "$ratingParams" }
}
}
]);
try {
await this.model("cards").findByIdAndUpdate(card, {
averageRating: obj[0].averageRating,
ratingParams: obj[0].ratingParams
});
} catch (err) {
console.log(err);
}
};
При создании review, в другой коллекции идет поиск и изменяются данные, я так понимаю. Проблема в том, что работает это только вот так (с одним параметром)
reviewSchema.statics.getAverageRating = async function(card) {
console.log(card);
const obj = await this.aggregate([
{
$match: { card: card }
},
{
$group: {
_id: "$card",
averageRating: { $avg: "$rating" }
}
}
]);
try {
await this.model("cards").findByIdAndUpdate(card, {
averageRating: obj[0].averageRating
});
} catch (err) {
console.log(err);
}
};
Но мне нужно обновлять 2 параметра. Но при сохранении, один изменяется параметр, а другой принимает значение null. Дело в том, что я передаю вторым параметром объект, Возможно из-за этого происходит ошибка? Как правильно это обработать?