MongoDB不插入嵌套文档



所以我试图在这里插入一个嵌套文档。books包含多本书,但它不插入标题,只插入自动生成的id。

这是我插入数据的代码:

"firstName": "Jay Rhick",
"lastName": "Villareal",
"country": "Philippines",
"citizenship": "Filipino",
"books": [{
"book": "Harry Pota"
}]

这是输出:

{
"_id": "6053fc2f33325b35305ee764",
"firstName": "Jay Rhick",
"lastName": "Villareal",
"country": "Philippines",
"citizenship": "Filipino",
"books": [
{
"_id": "6053fc2f33325b35305ee765"
}
],
"__v": 0

这是我的模式:

const mongoose = require('mongoose')
const BookSchema = require('./BookSchema').schema
const PostSchema = mongoose.Schema({
firstName: String,
lastName: String,
citizenship: String,
country: String,
books: [BookSchema]
})
module.exports = mongoose.model('PostSchema', PostSchema)

这是我的书模式

const mongoose = require('mongoose')
const BookSchema = mongoose.Schema({
book: String
})
module.exports = mongoose.model('BookSchema', BookSchema)

这是我的快线

const express = require('express')
const router = express.Router()
const Post = require('../models/Post')
router.post('/', async (req, res) => {
const post = new Post({
firstName: req.body.firstName,
lastName: req.body.lastName,
country: req.body.country,
citizenship: req.body.citizenship,
books: [{
book: req.body.book
}]
})
try{
const savedPost = await post.save()
res.json(savedPost)
}catch(err){
res.json({ message: err })
}
})
module.exports = router

由于它是一个嵌套的模式,它可能不会返回整个对象,只返回_id。你能看到你收藏的那本书名的书吗?如果它在集合中,您将需要查看mongoose中的.populate((函数。

这里有一个类似的stackoverflow问题:填充猫鼬中的嵌套数组

多亏了asg86260,我解决了问题!所以我更改了我的代码:

books: [{
book: req.body.book
}]

books: req.body.books

最新更新