Это моя схема БД
let couponId = Schema({
RestaurantId: { type: String },
RestaurantName: { type: String },
RestaurantLocation: { type: String },
AssignedTo: Schema.Types.Mixed,
CouponValue: { type: [String] }
});
Я хочу обновить поле AssignedTo
значением массива объектов с динамическим ключом и значением. Я выполняю этот запрос
CouponId.findOne({
"RestaurantId": resId
}, (err, restaurant) => {
value.push({
[userNumber]: restaurant.CouponValue[0]
});
console.log(value);
restaurant.update({
"RestaurantId": resId
}, {
$set: {
"AssignedTo": value
}
}, function(err) {
if (err) {
console.log(err);
} else {
console.log("updated");
}
});
});
Запрос, когда выполняется, дает результат updated
в консоли, но не обновляется в БД. Если этот запрос преобразуется в запрос MongoShell и выполняется, он дает результат, и коллекция обновляется, где выполняемый мной запрос mongoShell
db.couponids.update({"RestaurantId" : "1234"},{$set:{"AssignedTo":[{"1234":"2345"}]}});
Где я иду не так?