因此,为了记录在案,这是可行的,但是我们只是在使用猫鼬,但是我不得不从mongodb导入{ObjectId},以便找到候选的ID。
总结:我们正在创建候选人(候选人集合),并为每个候选人我们有/插入一些面试。每个面试都有自己的_id (每个面试也被插入到一个面试集合中),并且每个条目都有相应的候选_id。当我们想要删除那个候选人时,我们需要删除所有有_id的面试。
我仍然100%地不理解猫鼬,所以我可能错过了什么,但如果不使用mongodb {ObjectId},我似乎无法使它工作。
import Candidate from "../../../../models/candidateModel";
import Interview from "../../../../models/interviewModel";
import db from "../../../../utils/db";
import { NextApiRequest, NextApiResponse } from "next";
import { isAuth } from "../../../../utils/auth";
import { ObjectId } from "mongodb";
const handler = nc();
handler.use(isAuth);
handler.delete(async (req: NextApiRequest, res: NextApiResponse) => {
await db.connect();
const candidate = await Candidate.findById(req.query.id);
const candidateId = candidate._id.toString();
if (candidate) {
await candidate.remove();
await Interview.deleteMany({
candidate: new ObjectId(candidateId),
});
await db.disconnect();
res.send({ message: "Perfil de Candidato apagado" });
} else {
await db.disconnect();
res
.status(404)
.send({ message: "Não foi possivel encontrar o Perfil de Candidato" });
}
});请给我答案,考虑到这个应用程序使用的是APP /next/typescript/mongoose/axios。
await Interview.deleteMany({
candidate: new ObjectId(candidateId),
});这是我想知道的部分。如果有人需要查看模式,只需在这里问我,我就会同时发布它们。提前谢谢。
发布于 2022-01-17 21:51:31
猫鼬在Schema.Types.ObjectId也有一个Schema.Types.ObjectId:蒙哥斯ObjectId型
猫鼬还读取字符串来匹配对象,这样就不必使用新的ObjectId("stringid")了。
猫鼬有一个id的getter,您可以将_id作为字符串获得,而不是使用_id字段和获取ObjectId。这个"id“称为虚拟字段jsut。你可以在这里读到更多的信息:文件id getter
https://stackoverflow.com/questions/70746991
复制相似问题