我是Mongoose的新手,我的成员架构嵌套在会议室架构中,如下所示:
const MemberSchema = new Schema({
nickname: String,
id : String
});
const RoomSchema = new Schema({
code: String,
members: [MemberSchema]
});
我只需要从members数组中删除一条记录,我已经尝试过但是失败了:
Room.findOne({'members.id' : socket.id}).then(result=>{
result.members.pull({'id' : socket.id});
result.save();
})
PS:我不想使用Mongodb默认的_id,我需要它作为我之前提供的ID,对您有帮助吗?
答案 0 :(得分:0)
我刚刚想出了一个使用Filter方法的解决方案,效果似乎很好:
//Delete user from Database
Room.findOne({'members.id' : socket.id}).then(result=>{
let tempArr = result.members.filter(record=>{
return record.id === socket.id;
})
tempArr[0].remove();
result.save();
})