用猫鼬保存嵌套对象(数组),导致在mongodb中出现空对象

时间:2019-04-21 14:28:27

标签: javascript node.js mongodb express mongoose

问题是如此基本: 我想用mongoose将嵌套对象保存在mongodb中,但是当我保存它们时,嵌套对象为空

我已经尝试过其他解决此问题的方法,但不能解决我的问题。 推送对象,填充等。但这仅在您需要该信息而不保存时才起作用。 所以我在这里。

型号

private int[,] matrix = new int[3, 3] {
    { 0, 1, 0 },
    { 0, 1, 0 },
    { 0, 1, 1 }
};

private void aCanvas_Paint(object sender, PaintEventArgs e) {
    var gfx = e.Graphics;
    var brush = new SolidBrush(Color.Tomato);
    for (var x = 0; x <= matrix.GetLength(0) - 1; x++) 
        for (var y = 0; y <= matrix.GetLength(1) - 1; y++)
           if (matrix[x, y] != 0) {
               var rect = new Rectangle(x, y, 30, 30);
               gfx.FillRectangle(brush, rect);
           }
}

保存测试:


const mongoose = require('mongoose')
let Schema = mongoose.Schema
const respuestaSchema = new Schema({
    resp:{type:String},
    value:{type:String}
},{ _id : false })

const preguntasSchema = new Schema({
    pregunta:{type:String},
    tipo:{type:String},
    respuesta:[respuestaSchema]
},{ _id : false })

let testSchema = Schema({
    _id:{type:Schema.ObjectId, auto:true},
    name: {type:String},
    dName:{type:String},
    categoria:{type:[Schema.ObjectId],ref:'categoria'},
    preguntas:[preguntasSchema]

},{versionKey:false})

module.exports = mongoose.model('test',testSchema)

我做const Test = require('../models/test') exports.newTest = function(req,res){ let param = req.body let nTest = new Test() nTest.name = param.name nTest.dName = param.dName nTest.categoria = param.categoria nTest.pregunta = param.pregunta nTest.tipo = param.tipo nTest.resp = param.resp nTest.value = param.value nTest.preguntas.push(nTest) nTest.save().then( testSaved=>{ res.status(200).send({accion:'newTest',mensaje:'Test creado correctamente'}) } ).catch(err=>{res.status(500).send({accion:'newTest',mensaje:'Error en creacion de test ' +err})}) } 来保存前古冈,并且保存了它,但是该对象中的信息没有出现,只出现了object [],因为古冈内有另一个对象。

我希望在Compass或Robo3T上看到我传递的所有信息,但我只会看到不是嵌套对象的信息,而嵌套对象的标题却是空的。 如果您需要db中问题的img捕获,我可以发送。 希望您能为我提供此信息。

1 个答案:

答案 0 :(得分:0)

我根据您声明的方案编辑了您的代码,请尝试:

exports.newTest = ({ body: param }, res) => {
  const nTest = new Test();
  nTest.name = param.name;
  nTest.dName = param.dName;
  nTest.categoria = param.categoria;
  nTest.preguntas = [
    {
      pregunta: param.pregunta,
      tipo: param.tipo,
      respuesta: [
        {
          resp: param.resp,
          value: param.value,
        },
      ],
    },
  ];
  // your saving func
};