簡體   English   中英

如何在均值堆棧項目中推送到文檔?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM