将值推送到猫鼬模式中对象内的数组
Posted
技术标签:
【中文标题】将值推送到猫鼬模式中对象内的数组【英文标题】:Push a value to an array inside an object in mongoose schema 【发布时间】:2021-02-09 16:12:05 【问题描述】:我正在尝试将值推送到 mongoose 模式中的对象内的数组。这是我的架构:
const UserSchema = new mongoose.Schema(
username: type: String, required: true, unique: true ,
watchlist:
savedMovies: type: [String] ,
ratings: type: [Number] ,
avgRating: type: Number, default: null ,
,
);
我想将一个值推送到监视列表对象内的 savedMovies 数组。我怎样才能做到这一点?我尝试了以下操作。
router.post("/:username/favmovie", async (req: Request, res: Response) =>
try
const user = await User.find( username: req.params.username ).lean().exec();
const updatedUser = await User.updateOne( _id: user[0]._id , watchlist: $addToSet: savedMovies: req.body.movieID );
res.json(updatedUser);
catch (err)
res.json( message: err );
);
但它只是添加了一个新的监视列表对象,这不是我想要的。我只想更新关注列表对象中的 savedMovies 数组。
【问题讨论】:
【参考方案1】:试试这个 -
db.usersdata.update(
"_id": 1.0
,
$addToSet: "watchlist.savedMovies": "Movies4"
)
Mongo Playground
【讨论】:
它给出了一个 Property assignment expected.ts(1136) 错误。但是,不幸的是,当我删除多余的 标记时它也不起作用。 我的错..非常抱歉。从错误的窗口粘贴查询。我正在更新答案。 已更新。请立即尝试。以上是关于将值推送到猫鼬模式中对象内的数组的主要内容,如果未能解决你的问题,请参考以下文章
如何按键过滤数组并使用javascript将值推送到另一个数组