【发布时间】:2021-01-03 09:53:10
【问题描述】:
我正在尝试更新数组中的子文档books,但没有成功。不会保存新数据。
快递:
router.put("/:id/:bookid", (req, res) => {
Library.updateOne(
{ _id: req.params.id, "books._id": req.params.bookid },
{ $set: { "books.$.title": "New value" } }
);
});
LibraryScema:
const LibarySchema = new Library({
Name: {
type: String,
required: false
},
books: [BookSchema]
});
bookScema:
const BookSchema = new Schema({
title: {
type: String,
required: false
},
Chapters: [
{
chapterTitle: {
type: String,
required: false
}
}
]
});
我做错了什么?
编辑:
库表:
{
"_id": {
"$oid": "12345"
},
"Name": "A random libary",
"Books": [{
"_id": {
"$oid": "1"
}
"title": "TitleExample",
"Chapters": [{
chapterTitle: "first chapter etc"
}]
},
{
"_id": {
"$oid": "2"
}
"title": "Another book" ,
"Chapters": [{
chapterTitle: "first chapter etc"
}]
}]
}
【问题讨论】:
-
您能否使用您尝试更新的文档以及
req.params.id和req.params.bookid的值更新您的问题? -
@JohnnyHK 用文档更新了答案,勾选“编辑”
-
您实际上并没有执行更新;查看链接的骗局。
-
@JohnnyHK 加
.exec();就够了吗?还是有问题。