将数据推送到 MongoDB 而无需编辑 MEAN 中的整个条目
Push data to MongoDB without editing the whole entry in MEAN
所以我通过 MEAN Stack 获得了一个单页应用程序 运行。我有以下 scheme/model 的 Klausur(Klausur 是德语考试,我想管理考试)。
var KlausurSchema = new Schema(
{
name: String,
semester: String,
krankmeldungen: [Number],
aufgaben: [{
name: String,
punkte: Number
}],
studenten: [{
matrnr: Number,
vorname: String,
nachname: String,
bewertung: [{
punkte: Number
}],
pversuch: String,
pvermerk: String,
freiverm: String,
labnr: Number,
porgnr: Number,
aenddat: String
}]
}
);
多个用户可以编辑条目,否则我会直接覆盖条目。我想要一个由 "studenten"(学生)组成的 table,是否可以将一个学生推送到我的 "studenten" 而无需 PUTTING(编辑)整个 "Klausur",即我想在不覆盖整个数据库条目的情况下将信息推送到数组!
提前致谢!
将要更新的对象传递给本机 mongoDB 更新查询。
伪查询将是,
db.model.update(选择器, objectToUpsert);
db.student.update(
{ name: "David" },
{
name: "Will",
marks: 75,
grade: A
},
{ upsert: true }
)
先找Klausur=exam说
Klausur.findOne({_id:sample_id}).exec(function (error, closure){
closure.students.push(newstudentobject);
closure.save();
})
请勾选Docs
如果要插入新的学生数组。您可以使用下面提到的 MongoDB 查询。
使用 MongoDB
db.klausur.update(
{ name: "David" },
$addToSet: {
studenten: {
$each: [
{
matrnr: 123,
vorname: "ABC",
nachname: "XYZ",
bewertung: [{
punkte: 123
}]
},
{
matrnr: 124,
vorname: "ABCD",
nachname: "XYZA",
bewertung: [{
punkte: 1234
}]
}]
}
);
使用猫鼬
ModelName.update(
{ name: "David" },
$addToSet: {
studenten: {
$each: [
{
matrnr: 123,
vorname: "ABC",
nachname: "XYZ",
bewertung: [{
punkte: 123
}]
}]
}
);
您也可以使用 $push 代替 $addToSet。但 $addToSet 处理重复插入问题。还有一件事,如果你想添加单个学生对象,那么只需使用上面的查询而不使用 $each。例如
db.klausur.update(
{ name: "David" },
$addToSet: {
studenten: {
matrnr: 123,
vorname: "ABC",
nachname: "XYZ",
bewertung: [{
punkte: 123
}]
}
}
);
所以我通过 MEAN Stack 获得了一个单页应用程序 运行。我有以下 scheme/model 的 Klausur(Klausur 是德语考试,我想管理考试)。
var KlausurSchema = new Schema(
{
name: String,
semester: String,
krankmeldungen: [Number],
aufgaben: [{
name: String,
punkte: Number
}],
studenten: [{
matrnr: Number,
vorname: String,
nachname: String,
bewertung: [{
punkte: Number
}],
pversuch: String,
pvermerk: String,
freiverm: String,
labnr: Number,
porgnr: Number,
aenddat: String
}]
}
);
多个用户可以编辑条目,否则我会直接覆盖条目。我想要一个由 "studenten"(学生)组成的 table,是否可以将一个学生推送到我的 "studenten" 而无需 PUTTING(编辑)整个 "Klausur",即我想在不覆盖整个数据库条目的情况下将信息推送到数组!
提前致谢!
将要更新的对象传递给本机 mongoDB 更新查询。
伪查询将是, db.model.update(选择器, objectToUpsert);
db.student.update(
{ name: "David" },
{
name: "Will",
marks: 75,
grade: A
},
{ upsert: true }
)
先找Klausur=exam说
Klausur.findOne({_id:sample_id}).exec(function (error, closure){
closure.students.push(newstudentobject);
closure.save();
})
请勾选Docs
如果要插入新的学生数组。您可以使用下面提到的 MongoDB 查询。
使用 MongoDB
db.klausur.update(
{ name: "David" },
$addToSet: {
studenten: {
$each: [
{
matrnr: 123,
vorname: "ABC",
nachname: "XYZ",
bewertung: [{
punkte: 123
}]
},
{
matrnr: 124,
vorname: "ABCD",
nachname: "XYZA",
bewertung: [{
punkte: 1234
}]
}]
}
);
使用猫鼬
ModelName.update(
{ name: "David" },
$addToSet: {
studenten: {
$each: [
{
matrnr: 123,
vorname: "ABC",
nachname: "XYZ",
bewertung: [{
punkte: 123
}]
}]
}
);
您也可以使用 $push 代替 $addToSet。但 $addToSet 处理重复插入问题。还有一件事,如果你想添加单个学生对象,那么只需使用上面的查询而不使用 $each。例如
db.klausur.update(
{ name: "David" },
$addToSet: {
studenten: {
matrnr: 123,
vorname: "ABC",
nachname: "XYZ",
bewertung: [{
punkte: 123
}]
}
}
);