簡體   English   中英

如何在 mongoDB 中保存數據,Schema 如下所示

[英]How to save data in mongoDB and Schema is like bellow

這是我使用 mongoose npm package 的架構。

var StatusSchema = new mongoose.Schema({

    empName: {
        projectName: { type: String },
        clientName: { type: String },
        statusLastWeek: { type: String },
        statusThisweek: { type: String },
        planNextWeek: { type: String }
    }
});

這是我更新數據的nodejs代碼

    var Status = mongoose.model('Status', StatusSchema);
    module.exports = Status;

      Description: Want save data in MongoDB, data schema is like above mentioned,
       save saving data is sored loke as bellow. 
       Inside Mongo DB :
    { "_id" : ObjectId("5d92f4aba4695e2dd90ab438"), "__v" : 0 }
    { "_id" : ObjectId("5d92f4b4a4695e2dd90ab439"), "__v" : 0 }

MongoDB 中的預期集合:

     Dave Smith {
        projectName: BLE Mesh,
        clientName: Tera,
        statusLastWeek: BLE Scan,
        statusThisweek: BLE List View,
        planNextWeek:   Mqtt config
    }

在這里你可以看到我的 NodeJS 代碼:

 router.post ('/update', (req,res,next)=>{

        userStatus = new wkStatus(req.body)
         userStatus.save()
        .then(status => {
          res.redirect('/success');
          console.log ("Status saved in DB")
        })
       .catch(err => console.log(err))

      // return next;
  });
//You can use ODM like mongoose and define a schema with mongoose.Schema. You can just 
// see mongoose module document from npm. Use .save() for save an object in DB.

// Example : 

// schema as admin

const mongoose = require('mongoose');
mongoose.Promise = global.Promise;
const Schema = mongoose.Schema;
const bcrypt = require('bcrypt-nodejs');
const sha256 = require('sha256')

const adminSchema = new Schema({
    fullName: { type: String, required: true },
    userName: { type: String },
    noc: { type: String, required: true },
    mobileNumber: { type: String, required: true },
    email: { type: String },
    chacommAddress: {
        contactPerson: { type: String },
        country:  { type: String },
        address:  { type: String },
        city:  { type: String },
        pinCode:  { type: String },
        state:  { type: String },
        stateCode:  { type: String },
    },
    address: {
        country: { type: String },
        city: { type: String },
        pinCode: { type: String },
        state: { type: String },
        stateCode: { type: String },
        address: { type: String },
        CIN: { type: String },
        GSTIN: { type: String }
    },
    password: { type: String, required: true },
    userType: { type: Number, required: true },
    createdAt: { type: Date, required: true },
    uploadFile: { type: String, required: true },
    bankdetails: {
        bankName: { type: String },
        accountNo: { type: String },
        ifscCode: { type: String },
        accountType: { type: String },
        accountName: { type: String },
        cancelledChequeCopy: { type: String }
    },
    isActive: { type: Boolean },
    invoiceString:{type:String},
    invoiceValue:{type:Number},
    accountantName :{type:String} ,
    accountantDesignation : {type:String},
    referredBy:{type:String}
});

adminSchema.methods.comparePassword = function (password) {
    let password_hash = sha256(password);
    return bcrypt.compareSync(password_hash, this.password);
}

adminSchema.pre('save', function (next) {
    if (!this.isModified('password'))
        return next();
    let password_hash = sha256(this.password);
    bcrypt.hash(password_hash, null, null, (err, hash) => {
        if (err)
            return next(err);
        this.password = hash;
        next();
    });
});

//export schema
// module.exports = mongoose.model('Admin', adminSchema)


// for save:

const admin = require('admin')

var obj= new admin({
// values as per model defined
})

obj.save()
const wkStatus = new wkStatus({
      _id: new mongoose.Types.ObjectId(),
      projectName: req.body.projectName,
      clientName: req.body.clientName,
      statusThisweek: req.statusThisweek,
      statusLastWeek: req.statusLastWeek,
      planNextWeek: req.planNextWeek
})
Status
   .save()
   .then(result => {
        res.status(201).json({
            message: "Data Created Successfully",
        })
       console.log(result) // show the response
   })
  .catch(err => {
       res.status(500).json({error:err})
  })

試試這個方法希望它會工作。 如果需要更多可以給我留言

您嘗試創建的架構本身是錯誤的。

empName: {
    projectName: { type: String },
    clientName: { type: String },
    statusLastWeek: { type: String },
    statusThisweek: { type: String },
    planNextWeek: { type: String }
}

上述模式可以創建如下對象:“empName”不能是動態的。

empName: {
    projectName: BLE Mesh,
    clientName: Tera,
    statusLastWeek: BLE Scan,
    statusThisweek: BLE List View,
    planNextWeek:   Mqtt config
}

如果您想像顯示的那樣存儲,其中empName是動態的,那么您應該將empName設為Map參見https://mongoosejs.com/docs/schematypes.html#maps

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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