失败的MongoDB集合与node.js的中删除

问题描述 投票:0回答:2

使用IAM MongoDB的存储快递会话作为快递会话文档,其做工精细用插入和更新,但未能删除收集我不会话知道为什么,但它的工作原理,当我重新启动我的服务器第一次

async function logout(req, res) {

if (!req.sessionID || !req.session.adminId){
    res.send({status:400,detail:"Invalid Request"})
    return;
}
if (sessionStore!=null){
    sessionStore.remove({"_id":req.sessionID},true)'
    res.send({status:200,detail:"Logged Out"})
}
else {res.send({status:400,detail:"Something went wrong"})
 }
}

/*sessionStore here is my collection object e.g db.collection('sessions') as below*/
mongoClient.connect("mongodb://localhost:27017/AdminSessionDb", function(err, db) {
    if (err) {
        console.log('Error connecting to MongoDB-AdminSessionDB, err);
        return;
    }
    else {
        // console.log('Connected to MongoDB-capptinAdminSessions => auth.js');
        adminSessionsCollection = db.collection("sessions");
    }
});
node.js mongodb
2个回答
2
投票

尝试在ObectId()如下来包装ID:db.collection.remove({ “_id”:的ObjectId( “ID”)});

async function logout(req, res) {

if (!req.sessionID || !req.session.adminId){
    res.send({status:400,detail:"Invalid Request"})
    return;
}
if (sessionStore!=null){
    sessionStore.remove({"_id": Mongoose.Types.ObjectId(req.sessionID)})
    res.send({status:200,detail:"Logged Out"})
}
else {res.send({status:400,detail:"Something went wrong"})
 }
}

/*sessionStore here is my collection object e.g db.collection('sessions') as below*/
mongoClient.connect("mongodb://localhost:27017/AdminSessionDb", function(err, db) {
    if (err) {
        console.log('Error connecting to MongoDB-AdminSessionDB, err);
        return;
    }
    else {
        // console.log('Connected to MongoDB-capptinAdminSessions => auth.js');
        adminSessionsCollection = db.collection("sessions");
    }
});

0
投票

所以最后我得出一个解决方案,我不知道为什么,但它不是_id基础上删除,而我的ID是α-numaric像“2SXBWzAMq6laXsmYtLGqJHpdt3omDesG”这不是在node.js中删除,所以我尝试了一招我加入numaric UNIQUEID与该行/记录,并附加该UNIQUEID到会话属性,以及像

let sessionUniqueId = parseInt(Math.random() *10956362 + new Date().getTime())

var filter = { _id: req.sessionID};
var newvalues = { $set:{
                          "uniqueId":sessionUniqueId,
                }};
sessionStore.updateOne(filter, newvalues, function(err) {
                  if (err) {console.log('Failed to attach Session UniqueId');}
              });

req.session.uniqueId = sessionUniqueId;  // also attach to session property

并以此UNIQUEID像删除记录

sessionStore.deleteOne({
        uniqueId: parseInt(req.session.uniqueId),
    })

现在它删除此行或记录。

© www.soinside.com 2019 - 2024. All rights reserved.