如何 Mongoose 添加父子类别(嵌套)Node.JS
How to Mongoose add Parent-Child Category(Nested) Node.JS
我想使用 mongoose 添加父子类别 Nodejs.Data 正在 added.but 添加的子 ID 与 parent.How 相同 我是否将子 ID 设置为身份。你能帮帮我吗?
类别模型
var childSchema = new Schema({name:String,_id:{type:Schema.ObjectId}});
var categoryschema = new Schema({
_id: { type: Schema.ObjectId, auto: true },
name: String,
children: [childSchema]
});
API
exports.addCategory = function(req,res){
var newCategory = new category(req.body);
if(req.body._id==undefined){
newCategory.save((err)=>{
if (err) return handleError(err);
res.send("insertad");
});
}else{
req.body._id = Schema.ObjectId;
category.findByIdAndUpdate(req.body._id,{ $set: { children:req.body } },{new: true},function(err, model){
if(err)
console.log("error",err);
res.send("update");
});
}
}
在您的代码中 category.findByIdAndUpdate(req.body._id,{ $set: { children:req.body } }
您正在查找和更新具有相同 ObjectId
的文档。应该是,
{ $set: { children: { "_id": mongoose.Types.ObjectId(), 'name': req.body.name } } }
备选,
只需从您的架构中删除 _id
,您将自动生成 ObjectId
。
var childSchema = new Schema({name:String});
我想使用 mongoose 添加父子类别 Nodejs.Data 正在 added.but 添加的子 ID 与 parent.How 相同 我是否将子 ID 设置为身份。你能帮帮我吗?
类别模型
var childSchema = new Schema({name:String,_id:{type:Schema.ObjectId}});
var categoryschema = new Schema({
_id: { type: Schema.ObjectId, auto: true },
name: String,
children: [childSchema]
});
API
exports.addCategory = function(req,res){
var newCategory = new category(req.body);
if(req.body._id==undefined){
newCategory.save((err)=>{
if (err) return handleError(err);
res.send("insertad");
});
}else{
req.body._id = Schema.ObjectId;
category.findByIdAndUpdate(req.body._id,{ $set: { children:req.body } },{new: true},function(err, model){
if(err)
console.log("error",err);
res.send("update");
});
}
}
在您的代码中 category.findByIdAndUpdate(req.body._id,{ $set: { children:req.body } }
您正在查找和更新具有相同 ObjectId
的文档。应该是,
{ $set: { children: { "_id": mongoose.Types.ObjectId(), 'name': req.body.name } } }
备选,
只需从您的架构中删除 _id
,您将自动生成 ObjectId
。
var childSchema = new Schema({name:String});