我想保存复杂的数据,即对象数组到猫鼬。我已经尝试了几件事,但是无法保存数据。
我如上所述定义了架构,我想保存可以具有任何嵌套级别的对象数组。 架构
const mongoose = require('mongoose);
const PostSchema = new mongoose.Schema({
post: [{}]
});
let PostModel = mongoose.Model('Post', PostSchema)
这是我用来保存数据
的代码app.post('/saveData, async (req, res) => {
const response = await Post.create(req.body);
res.json({
data: response
});
});
app.listen(8008, () => {
console.log('server running);
});
问题是我无法检索数据。它返回的对象数组等于已保存数组的数量,但其中没有数据。
怎么办?
答案 0 :(得分:1)
此代码对我有用。
const PostModel = require('./Post'); //declare your model
app.post('/saveData', async (req, res) => {
const objModel = new PostModel();
objModel.post = req.body; //assign the data post array.
const response = await objModel.save();
res.json({
data: response
});
});
答案 1 :(得分:0)
您的发布架构看起来很奇怪。 您有一个Posts的集合,然后在posts模式中,有一个posts数组。 这有什么意义呢? 帖子集已经是帖子的“数组”。
// Perhaps you are looking for something like this.
const PostSchema = new mongoose.Schema({
title: String,
content: String,
level: Number,
footer: String,
author: ObjectId,// who wrote the post
comments: [{
user: ObjectId,
comment: String
}],
... createdAt, updatedAt etc
});
您的数据结构似乎也不匹配您的架构。 例如 等待Post.create({posts:req.body});