在对象内部创建对象并将元素推入数组,可以通过以下步骤避免:
const mongoose = require('mongoose');
const userSchema = new mongoose.Schema({
favorites: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Favorite'
}]
});
const User = mongoose.model('User', userSchema);
module.exports = User;
const express = require('express');
const router = express.Router();
const User = require('../models/user');
const Favorite = require('../models/favorite');
router.post('/users/:userId/favorites', async (req, res) => {
try {
const { userId } = req.params;
const { favoriteId } = req.body;
// 创建Favorite对象
const favorite = new Favorite({ _id: favoriteId });
// 查找用户并将Favorite对象推入favorites数组
const user = await User.findById(userId);
user.favorites.push(favorite);
// 保存用户对象
await user.save();
res.status(200).json({ message: 'Favorite added successfully' });
} catch (error) {
res.status(500).json({ error: 'An error occurred' });
}
});
module.exports = router;
通过以上步骤,我们可以避免在对象内部创建对象,并使用Mongoose直接将元素推入数组。这样做的优势是可以更好地组织和管理数据,同时提供了方便的查询和操作方法。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云