Я пытаюсь выполнить операцию обновления с использованием конвейеров агрегации в проекте Node.js с mon goose. Вот мой код:
// Model schema
let productSchema = new Schema({
name: { type: String, required: true },
description: { type: String, required: false },
currency: { type: String, required: false },
price: { type: Number, required: true },
createdAt: { type: Date, default: Date.now, required: true },
updatedAt: { type: Date, required: false },
tags: [String],
});
// Update operation
module.exports.update = async (product) => {
await productModel.findByIdAndUpdate(product._id,
[{
$set:
{
name: product.name,
description: product.description,
currency: product.currency,
price: product.price,
updatedAt: '$$NOW',
tags: { $concatArrays: [ '$tags', product.newTags ] }
}
}],
{
runValidators: true
});
}
Когда я выполняю функцию обновления, я получаю следующую ошибку:
{
"ok": 0,
"errmsg": "'$' by itself is not a valid FieldPath",
"code": 16872,
"codeName": "Location16872",
"name": "MongoError"
}
Node.js версия: 12.13
Версия MongoDB: 4.2.6