问题是如此基本: 我想用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捕获,我可以发送。 希望您能为我提供此信息。
答案 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
};