【发布时间】:2023-04-10 12:42:01
【问题描述】:
//这里是模型
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ObjectId = Schema.ObjectId;
// Task schema
var taskSchema = mongoose.Schema({
tasktype : {type: String},
createdon : {type: Date, default: Date.now},
createdby : {type: Schema.Types.ObjectId,ref: 'User'},
visitedby : [{type: Schema.Types.ObjectId,ref: 'User'}],
taskinfo : [{ isactive:Boolean, taskobject:String, taskdetails:String, iscompleted:Boolean}]
});
module.exports = mongoose.model('Task', taskSchema);
// 路线
var Task = require ('../models/task');
var User = require ('../models/user');
var config = require ('../../config');
module.exports = function(app, express) {
var api = express.Router();
api.post('/tasks', function (req, res) {
var task = new Task({
// ...
tasktype : req.body.tasktype,
taskinfo : req.body.taskinfo,
});
task.save(function(err){
if(err){
res.send(err);
return;
}
res.json({message:'Task has been created'})
});
return api
}
虽然所有其他字段都已保存,但具有多个字段的数组始终返回空白,例如“taskinfo:[]”
post 方法是 REST API,用于将任务发布到 mongoose 数据库中,对于具有单个字段的数组,一切正常,但具有多个字段的数组未保存,请在此帮助我。
基本帮助就可以了,请教我如何保存“多字段数组”。
Mongoose doesnot always require subdocument structure and this can be achieved by the above model, please dont advice to use subdocument structure, I want to learn this.
谢谢。
【问题讨论】:
-
看起来您在
route的第 9 行附近丢失了一些代码。请检查。 -
我正在询问保存数组的逻辑,因为我不知道如何保存具有多个字段的数组,createdon 默认保存,我现在不关心其他字段。
-
markModified有效吗? -
即
doc.markModified("taskinfo") -
我对它非常陌生,我从udemy或pluralsight的所有网络讲座中学到的是每个字段类型字段名:res.body.fieldname..你能告诉我完整的逻辑吗多字段数组?
标签: arrays node.js mongodb mongoose