[英]how can I do a push to a document in mean stack project?
我在控制器中有這部分代碼,我要做的是當我在同一屏幕上的郵遞員"localhost:3000/project/:id"
中執行"getProject"
,用參數將其張貼或放置在上面,但是當我嘗試放置或發布時,它不會保存在我的項目模型中
我嘗試使用此代碼,但沒有做到我想要的
function createWork(req, res) {
var work = new Work();
var project = new Project();
var projectId = req.params.id;
var params = req.body;
obra.name = params.name;
obra.oficialName = params.oficialName;
obra.price = params.price;
obra.workType= params.workType;
obra.ubication = params.ubication;
console.log(params);
Project.update({"Title":"project"}, {
$push: {
"work": {
"name":'name',
"oficialName":'oficialName',
"price":'price',
"workType":'workType',
"ubication":'ubication',
}
}
},
{safe: true, upsert: true},
function(err, updProject){
if (err) {
res.status(404).send({message: 'Error'});
} else {
res.status(200).send({project: updProject});
}
});
}
我有兩個模型,第一個是“項目”
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var Work = require('../models/work');
var ProjectsSchema = Schema({
name: String,
officialName: String,
price: String,
startDate: String,
endDate: String,
contract: String,
works: [{ type: Schema.Types.Object, ref: 'Work'}]
});
var Project = mongoose.model('Project', ProjectsSchema);
第二個是“工作”模型:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var WorksSchema = Schema({
name: String,
officialName: String,
price: String,
workType: String,
ubication: String
});
module.exports = mongoose.model('Work', WorksSchema);
我想在項目控制器中執行一個功能,以創建“工作”數據並將其推送到現有的“項目”中
Controller.js
function createWork(req, res) {
var newProject = new Project();
var name = req.body.name;
var oficialName = req.body.oficialName;
var price = req.body.price;
var workType= req.body.workType;
var ubication = req.body.ubication;
var dataToPush = {
name : name,
officialName : officialName,
price : price,
workType : workType,
ubication : ubication
}
newProject.update({"Title":"project"}, {
$push: {
"work": dataToPush
}
},
{new : truesafe, safe : true, upsert : true},
function(err, updProject){
if (err) {
res.status(404).send({message: 'Error'});
} else {
res.status(200).send({project: updProject});
}
});
}
模型.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var WorkSchema = new mongoose.Schema({
name : String,
officialName : String,
price : String,
workType : String,
ubication : String
},{timestamps:true})
var ProjectSchema = new mongoose.Schema({
projectName : String,
work : [WorkSchema]
},{timestamps:true});
module.exports = mongoose.model('project', ProjectSchema)
我以代碼作為控制器來完成我想要的
function createWork(req, res) {
Project.findByIdAndUpdate((req.params.id), {
$push: {
"works": req.body
}
},
function(err, updProject) {
if (err) {
res.status(404).send({message: 'Error'});
} else {
res.status(200).send({project: updProject});
}
});
}
並以此作為我的模型
'use strict'
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var WorkSchema = new mongoose.Schema({
name: String,
officialName: String,
price: String,
workType: String,
ubication: String
},{timestamps:true});
var ProjectsSchema = new mongoose.Schema({
name: String,
officialName: String,
price: String,
contract: String,
start: String,
end: String,
works: [WorkSchema]
},{timestamps:true});
module.exports = mongoose.model('Project', ProjectsSchema);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.