集合未保存mongodb nodejs

时间:2018-07-31 08:43:07

标签: node.js mongodb collections

我的应用程序(mongodb / nodejs)出现问题,我的目的是保存集合:

const Job = require("../models/Job");
exports.saveJob = (req, res, next) => {
    const newJob = new Job(req.body);
    newJob.gender = 'Male';
    newJob.save((err, myjob) => {
        myjob.code = '1234';
        myjob.save((err, mysavedjob) => {

            console.log(mysavedjob);
            /** OUTPUT **
            * { __v: 0,
                updatedAt: 2018-07-31T08:31:47.664Z,
                createdAt: 2018-07-31T08:31:47.664Z,
                gender:'Male',
                code:'1234',
                ...
             }
            */

        })
    })
}

如您所见,该代码输出保存的文档,但是当我检查数据库时,我没有代码:'1234'我只有

{ __v: 0,
 updatedAt: 2018-07-31T08:31:47.664Z,
 createdAt: 2018-07-31T08:31:47.664Z,
 gender:'Male',
  ...
}

====更新(添加JobModel)====

const mongoose = require("mongoose");
const JobSchema = new mongoose.Schema(
  {
    userId: { type: mongoose.Schema.Types.ObjectId, ref: "User" },
    code: String,
    gender: String,
  },
  { timestamps: true }
);

module.exports = mongoose.model("Job", JobSchema, "jobs");

有人可以告诉我为什么吗? 谢谢。

1 个答案:

答案 0 :(得分:0)

我不确定这是保存后更改工作的正确方法,但是请尝试

const Job = require("../models/Job");
exports.saveJob = (req, res, next) => {
const newJob = new Job(req.body);
newJob.gender = 'Male';
newJob.save((err, myjob) => {
    myjob.code = '1234';

    Job.findOneAndUpdate({_id: myjob._id}, myjob, (err, mysavedjob) => {
        console.log(mysavedjob);
    });

})
}