你好,我还是mongodb和Nodejs的新手 我希望能够删除项目并获取存储在数组中的id值,并删除它们
这里的解释是我的董事会架构
{
name: {
type: String,
required: 'Please check your name',
trim: true,
},
userId: {
type: Number,
},
private: {
type: Boolean,
default: true,
},
cards: [{ type: Schema.Types.ObjectId, ref: 'Card' }],
};
电路板架构有卡阵列,我希望能够在删除电路板时,删除存储在其上的卡片卡阵列,我使用mongoose,我试图使用findAndModify并返回错误
我也尝试过这个
const id = req.params.id;
const boardCards = Board.findById(id).cards;
try {
Board.deleteMany(
{ _id: id },
(err, board) => {
Card.deleteMany(
{ _id: { $in: boardCards } },
(err2, card) => { res.json(card); },
);
},
);
} catch (e) {
res.status(400).send({ error: 400, message: e });
}
但它不起作用
答案 0 :(得分:0)
我不使用mongoose但在原生驱动程序中你需要为查询扭曲你的id
尝试做
const id = mongoose.Types.ObjectId(req.params.id); //this has changed
const boardCards = Board.findById(id).cards;
try {
Board.deleteMany(
{ _id: id },
(err, board) => {
Card.deleteMany(
{ _id: { $in: boardCards } },
(err2, card) => { res.json(card); },
);
},
);
} catch (e) {
res.status(400).send({ error: 400, message: e });
}