Javascript mongodb:删除一个用户及其关联的所有数据引用
目前正在为自己开发一个个人网站,在尝试删除用户时,mongodb&mongoose遇到了一些困难 现在我有两个模式的显示如下 UserSchema:Javascript mongodb:删除一个用户及其关联的所有数据引用,javascript,node.js,database,mongodb,mongoose,Javascript,Node.js,Database,Mongodb,Mongoose,目前正在为自己开发一个个人网站,在尝试删除用户时,mongodb&mongoose遇到了一些困难 现在我有两个模式的显示如下 UserSchema: const userSchema = new mongoose.Schema({ username: { type:String, required: true, unique: true, }, password: String, firstName: String
const userSchema = new mongoose.Schema({
username: {
type:String,
required: true,
unique: true,
},
password: String,
firstName: String,
lastName: String,
eMail: String,
status: {type:Boolean, default: true},
hobbies: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "Hobby"
}
]
const hobbySchema = new mongoose.Schema({
title: String,
user: {
id: {
type: mongoose.Schema.Types.ObjectId,
ref: "User"
},
username: String
},
desc: String,
iconURL: String
});
霍布斯模式:
const userSchema = new mongoose.Schema({
username: {
type:String,
required: true,
unique: true,
},
password: String,
firstName: String,
lastName: String,
eMail: String,
status: {type:Boolean, default: true},
hobbies: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "Hobby"
}
]
const hobbySchema = new mongoose.Schema({
title: String,
user: {
id: {
type: mongoose.Schema.Types.ObjectId,
ref: "User"
},
username: String
},
desc: String,
iconURL: String
});
我现在的问题是,当我使用以下带有nodeJS的路由删除用户时:
router.delete('/delete/:id', async (req,res) => {
await User.findOneAndDelete(req.params.id, (err, foundUser) => {
if(err){
console.log(err);
}else{
res.redirect("/logout");
}
})
});
我遇到了这样一个问题:嗜好集合仍然包含用户创建的所有嗜好。我希望在用户想要删除他们的帐户时将其全部删除。我知道Mongodb/Mongoose是一个非关系数据库,与SQL不同,因为我来自SQL。有没有办法删除用户创建的所有爱好?(作为一个非常基本的例子,只是创造爱好)
最好的选择是什么?只是使用SQLLite并完全更改数据库
感谢相关:如果您使用多个集合,则需要在mongodb上进行多个查询。至少一个用于删除爱好,一个用于删除用户。