Node.js 如果MongoDB没有';不存在吗?
我是mongodb的新手。我正试图通过mongoose在mongodb中插入数据。但我面临着一些问题 我已经附上了我希望如何插入数据的图片 现在是我的模式Node.js 如果MongoDB没有';不存在吗?,node.js,reactjs,mongodb,mongoose,mongodb-query,Node.js,Reactjs,Mongodb,Mongoose,Mongodb Query,我是mongodb的新手。我正试图通过mongoose在mongodb中插入数据。但我面临着一些问题 我已经附上了我希望如何插入数据的图片 现在是我的模式 const ticketApplicationSchema = new mongoose.Schema({ ticketId: { type: ObjectId, text: String, required: true, ref: "Ticket&qu
const ticketApplicationSchema = new mongoose.Schema({
ticketId: {
type: ObjectId,
text: String,
required: true,
ref: "Ticket",
},
applications:[{
userId:{
type:ObjectId,
default:"adsfadsfasdf",
ref:"User"
},
answers:{
type:Array
}
}]
})
和我的插入数据函数
const insertTicket = (ticketId, ticketObject) => {
return new Promise((resolve, reject) => {
try {
ticketApplicationSchema
.findOneAndUpdate(
{ ticketId },
ticketObject,
{
new: true,
upsert: true,
}
)
.then((data) => resolve(data))
.catch((error) => {
// console.log(error);
reject(error);
});
} catch (error) {
console.log(error);
// reject(error);
}
});
};
请帮帮我,我哪里做错了
简而言之,告诉我如何将应用程序数据(用户和答案)作为数组添加到应用程序对象。我希望数据插入到同一个ticketId中。当我重新运行代码时,它只是替换当前数据,而不是添加user和ticket的新对象
这是图片
例如,我的票证是abcd1234。现在,多个用户可以提交他们的答案。如果您在一个新对象中有一个新数组,您可以像这样简单地创建该对象:
ticketApplicationSchema.findOneAndUpdate(
{ ticketId },
{ $push:
{ applications: newUserObject }
}).then((data) => resolve(data))
.catch((error) => {
// console.log(error);
reject(error);
});
} catch (error) {
console.log(error);
// reject(error);
}
});
很难理解你在期待什么,男人。你能说清楚一点吗?首先,谢谢你关注我的问题@TusharShahi。我想插入一个包含用户ID和用户提交的3个答案的对象。对象将作为数组插入到应用程序中。换句话说:应用程序:[{user:userId,答案:[“a”,“b”,“c”]},{user:userId,答案:[“a”,“b”,“c”]},{user:userId,答案:[“a”,“b”,“c”]}我认为这是清楚的。如果不让我知道,我会进一步解释。谢谢。但是ticketId是一样的,在应用程序中你正在添加用户及其答案?看,我的项目是:将有一个票证列表,用户将单击票证,并给出答案。现在我想把它存储在我的数据库中。所以我想添加ticketId,然后添加userId以及他的答案。由于将有多个用户,所以我想将它们添加到一个数组中。这就是我希望添加的数据的工作方式。谢谢