Node.js 如何使用Mongoose和NodeJS在MongoDB中保存嵌套数组
有人能解释一下如何使用mongoose和nodejs将嵌套数组项保存到mongodb中吗 下面是我正在使用的模式Node.js 如何使用Mongoose和NodeJS在MongoDB中保存嵌套数组,node.js,mongodb,mongoose-schema,Node.js,Mongodb,Mongoose Schema,有人能解释一下如何使用mongoose和nodejs将嵌套数组项保存到mongodb中吗 下面是我正在使用的模式 var demoSchema = ({ "r_id": Number, "r_label": String, "entity": [{ "d_label": String, "d_type": String } ] }) 下面是我用来将数据保存到数据库中的Nodejs函数 app.route("/mypa
var demoSchema = ({
"r_id": Number,
"r_label": String,
"entity": [{
"d_label": String,
"d_type": String
}
]
})
下面是我用来将数据保存到数据库中的Nodejs函数
app.route("/mypages/rooms")
.post(function(req, res) {
var db = mongoOp.demo();
var response = {};
req.checkBody("r_id", "Enter a valid r_id address.").notEmpty();
req.checkBody("r_label", "Enter a valid label address.").notEmpty();
var errors = req.validationErrors();
if (errors) {
console.log(errors);
console.log(req.body);
res.status(500);
res.end('500 Server Error');
//res.render('addrooms',{flag:1});
return;
} else {
db.r_id = req.body.r_id;
db.r_label = req.body.r_label;
db.entity = req.body.entity;
db.save(function(err) {
if (err) {
findfromdb(req, res, 2); //own function for implementation purpose
} else {
findfromdb(req, res, 1);
}
});
//var middleVar = req.body.resources;
// console.log(middleVar[0].d_rgb);
}
});
使用数组设置实体
[]
db.entity=[{}]代码>
app.route("/mypages/rooms")
.post(function(req, res) {
var db = mongoOp.demo();
var response = {};
req.checkBody("r_id", "Enter a valid r_id address.").notEmpty();
req.checkBody("r_label", "Enter a valid label address.").notEmpty();
var errors = req.validationErrors();
if (errors) {
console.log(errors);
console.log(req.body);
res.status(500);
res.end('500 Server Error');
//res.render('addrooms',{flag:1});
return;
} else {
db.r_id = req.body.r_id;
db.r_label = req.body.r_label;
db.entity = [{
"d_label": req.body.label_type,
"d_type": req.body.d_type
}];
db.save(function(err) {
if (err) {
findfromdb(req, res, 2); //own function for implementation purpose
} else {
findfromdb(req, res, 1);
}
});
//var middleVar = req.body.resources;
// console.log(middleVar[0].d_rgb);
}
});
下面的操作将元素label_type
和d_type
添加到实体数组中,如果它们在数组中不存在,则不会添加它们
看看这个答案
使用数组设置实体[]
db.entity=[{}]代码>
app.route("/mypages/rooms")
.post(function(req, res) {
var db = mongoOp.demo();
var response = {};
req.checkBody("r_id", "Enter a valid r_id address.").notEmpty();
req.checkBody("r_label", "Enter a valid label address.").notEmpty();
var errors = req.validationErrors();
if (errors) {
console.log(errors);
console.log(req.body);
res.status(500);
res.end('500 Server Error');
//res.render('addrooms',{flag:1});
return;
} else {
db.r_id = req.body.r_id;
db.r_label = req.body.r_label;
db.entity = [{
"d_label": req.body.label_type,
"d_type": req.body.d_type
}];
db.save(function(err) {
if (err) {
findfromdb(req, res, 2); //own function for implementation purpose
} else {
findfromdb(req, res, 1);
}
});
//var middleVar = req.body.resources;
// console.log(middleVar[0].d_rgb);
}
});
下面的操作将元素label_type
和d_type
添加到实体数组中,如果它们在数组中不存在,则不会添加它们
看看这个答案
您能帮我找到更新相同模式的方法吗?。假设我已经有了一个d_标签和d_类型,我需要再更新一个条目。是的,您必须使用$addToset
,我是否要更新我的答案并为$addToset
添加另一个方法?是的,它将有用您是要向实体添加新对象还是只执行更新,我的意思是将添加更多实体{}在arrayI中使用d_标签和d_类型将只添加更多实体。您能否帮助找到更新相同架构的方法?。假设我已经有了一个d_标签和d_类型,我需要再更新一个条目。是的,您必须使用$addToset
,我是否要更新我的答案并为$addToset
添加另一个方法?是的,它将有用您是要向实体添加新对象还是只执行更新,我的意思是将添加更多实体{}在arrayI中使用d_标签和d_类型将只添加更多实体。