Arrays 使用mongoose在mongodb中保存多字段数组
//这是模型Arrays 使用mongoose在mongodb中保存多字段数组,arrays,node.js,mongodb,mongoose,Arrays,Node.js,Mongodb,Mongoose,//这是模型 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
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方法是RESTAPI,用于将任务发布到mongoose数据库中,对于单字段数组,一切正常,但多字段数组无法保存,请有人在此帮助我
基本帮助可以,请教我如何保存“多字段数组”
谢谢。我认为如果taskinfo有多个值,并且您希望将其保存为任务文档中的嵌入文档。您应该有不同的任务信息文档。所以,你可以这样存钱
var TaskInfoSchema = require("taskInfo.js").TaskInfoSchema
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 : [TaskInfoSchema]
});
module.exports = mongoose.model('Task', taskSchema);
现在,您将有不同的文档作为任务信息,如
var taskInfo = mongoose.Schema({
isactive:{type:Boolean},
taskobject:{type:String},
taskdetails:{type:String},
iscompleted:{type:Boolean}
});
var TaskInfo = mongoose.model('TaskInfo', taskSchema);
module.exports.TaskInfo = TaskInfo
module.exports.TaskInfoSchema = taskSchema
保存任务文档时
Var TaskInfo = new TaskInfo({
isactive:true,
taskobject:"",
taskdetails:"",
iscompleted:true
})
var task = {};
task.tasktype = req.body.tasktype;
你可以推它
task.taskinfo = [];
for (var i = 0; i < req.body.taskInfo.length; i++) {
var taskInfo = new TaskInfo(req.body.taskInfo[i]);
task.taskinfo.push(taskInfo);
}
我认为如果taskinfo有多个值,并且您希望将其保存为任务文档中的嵌入文档。您应该有不同的任务信息文档。所以,你可以这样存钱
var TaskInfoSchema = require("taskInfo.js").TaskInfoSchema
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 : [TaskInfoSchema]
});
module.exports = mongoose.model('Task', taskSchema);
现在,您将有不同的文档作为任务信息,如
var taskInfo = mongoose.Schema({
isactive:{type:Boolean},
taskobject:{type:String},
taskdetails:{type:String},
iscompleted:{type:Boolean}
});
var TaskInfo = mongoose.model('TaskInfo', taskSchema);
module.exports.TaskInfo = TaskInfo
module.exports.TaskInfoSchema = taskSchema
保存任务文档时
Var TaskInfo = new TaskInfo({
isactive:true,
taskobject:"",
taskdetails:"",
iscompleted:true
})
var task = {};
task.tasktype = req.body.tasktype;
你可以推它
task.taskinfo = [];
for (var i = 0; i < req.body.taskInfo.length; i++) {
var taskInfo = new TaskInfo(req.body.taskInfo[i]);
task.taskinfo.push(taskInfo);
}
看起来您在
路线的第9行附近丢失了一些代码。请检查。我正在询问保存数组的逻辑,因为我不知道如何使用多个字段保存数组,createdon默认保存,我现在不关心其他字段。markModified
有效吗?即doc.markModified(“taskinfo”)
我对它非常陌生,我从udemy或pluralsight的所有网络讲座中学到的是每个字段类型fieldname:res.body.fieldname。。您能告诉我多字段数组的完整逻辑吗?看起来您在路线
的第9行附近丢失了一些代码。请检查。我正在询问保存数组的逻辑,因为我不知道如何使用多个字段保存数组,createdon默认保存,我现在不关心其他字段。markModified
有效吗?即doc.markModified(“taskinfo”)
我对它非常陌生,我从udemy或pluralsight的所有网络讲座中学到的是每个字段类型fieldname:res.body.fieldname。。您能告诉我多字段数组的完整逻辑吗?谢谢您的详细描述,先生,但我在某个地方读到不需要嵌入文档,您能告诉我如何通过创建单个模式来实现这一点吗?您能给我推荐一些书或课程,从中我可以了解如何使用mongoose在mongodb中插入数组字段。下面是我想要json文档的方式:请在设计架构之前遵循此链接我尝试了ans,但出现错误popsup,有人说我必须使用push来输入和保存数组。还有Var TaskInfo=new TaskInfo({isactive:true,taskobject:,taskdetails:,iscompleted:true})这就是为什么我们不接受用户的输入?谢谢您的介绍,先生,但我在某个地方读到了不需要嵌入文档的内容,您能告诉我如何通过创建单个模式来实现这一点吗?您能给我推荐一些书或课程,从中我可以了解如何使用mongoose在mongodb中插入数组字段。下面是我想要json文档的方式:请在设计架构之前遵循此链接我尝试了ans,但出现错误popsup,有人说我必须使用push来输入和保存数组。还有Var TaskInfo=new TaskInfo({isactive:true,taskobject:,taskdetails:,iscompleted:true})这就是为什么我们不接受用户的输入?