MongoDB WriteCert和写入超时不工作

MongoDB WriteCert和写入超时不工作,mongodb,Mongodb,我目前正在使用MongoDB 2.2.30。 我试图限制MongoDB等待DB响应的时间 目前,如果我断开互联网并插入,它基本上会永远等待,我永远不会收到错误 我希望操作在一定时间后中止,比方说5秒 我的连接: let settings = { connectTimeoutMS: 30000, reconnectTries: Number.MAX_VALUE, reconnectInterval: 1000, w: 1, wtimeout: 5000

我目前正在使用MongoDB 2.2.30。 我试图限制MongoDB等待DB响应的时间

目前,如果我断开互联网并插入,它基本上会永远等待,我永远不会收到错误

我希望操作在一定时间后中止,比方说5秒

我的连接:

let settings = {
    connectTimeoutMS: 30000,
    reconnectTries: Number.MAX_VALUE,
    reconnectInterval: 1000, 

    w: 1,
    wtimeout: 5000
}
let db = await MongoClient.connect(connectionString, settings);
写入操作:

let user = {username: "samuel", password: "aStrongPassword!", email: "me@me.com"}
const result = await db.collection('users').insertOne(user);
return result.insertedId;
通过测试,我得到了与不使用
w
wtimeout
时相同的结果。
我是做错了什么还是这是一个bug?

我得到了相同的结果。对不起,我对你的代码多加了一点注意<代码>重新连接尝试:Number.MAX\u值,基本上表示要永远保持尝试重新连接。将其设置为5以在5秒后获得连接错误(如果重新连接间隔保持1秒)。我故意这样做是因为我希望它一直尝试重新连接,根据文档“
wtimeout
导致写入操作在指定限制后返回错误,即使所需的写入问题最终会成功”,这就是我使用它的原因,我只想让它尝试执行5秒钟的操作,即使连接良好。wtimeout完全在服务器端工作,如果复制副本的
w
成员在此时间段内未更新,则会触发错误。当您“断开internet连接”时,服务器没有机会向客户端反馈写入是否成功。@AlexBlex我理解,谢谢,所以我需要最后一次连接/尝试连接5秒钟。