我有问题。在我的一个收藏夹中,我积累了超过300万个文档,因为没有实现通过任何关系删除另一个文档的方法来删除一个文档。
问题是我想删除不匹配的文档。我不知道该怎么做...我不知道如何写不匹配的!=。在这种情况下,我想从Cars ddbb中删除Toyota和BMW,因为与Drivers集合不匹配。
收藏1将ddbb放到我拥有超过300万个文档的地方:
{
_id: ObjectId("5d1c7f8fa9a13d7023a64fe7"),
car: "Toyota",
color: "blue"
}
{
_id: ObjectId("5d1c817aa9a13dd106a64fe9"),
car: "Hyundai",
color: "white"
}
{
_id: ObjectId("5d1d02e0a9a13d0076a64ff7"),
car: "BMW ",
color: "red"
}
集合2驱动程序:
{
_id: ObjectId("5d1c8084a9a13d5464a64fe8"),
age: 25,
carModel: "Mercedes"
}
{
_id: ObjectId("5d1c8648a9a13de345a64fee"),
age: 32,
carModel: "Hyundai"
}
我在想这样的事情:
public deleteNotMatchingDocuments(): Promise<void> {
return new Promise((resolve, reject) => {
Drivers.find().then((doc: any) => {
doc.forEach((doc: any) => {
Cars.deleteMany({ car =! doc.carModel } }).then(() => {//no idea how to write this
if (doc) {
resolve(doc);
} else {
reject("field not found");
}
}).catch((err: any) => {
console.error(err);
reject("database Error");
});
});
})
});
}