【发布时间】:2016-09-29 21:13:09
【问题描述】:
我正在尝试从 connect-mongo 会话集合中手动删除一个文档。当我尝试删除文档时,出现以下错误:
消息:“路径“_id”处值“gl9-V-bjAjqv2Nwdf9vHPLN_Fnnl4Thz”的转换为 ObjectId 失败'
express-session 使用以下函数生成会话 id:
function generateSessionId(sess) {
return uid(24);
}
从此函数生成的会话进入会话文档的 _id 属性。但是,当您尝试通过生成的 id 查找或删除文档时,您会收到错误消息。
mongodb 文档说 _id 应该是
ObjectId 是一个 12 字节的 BSON 类型 ObjectId
我尝试使用会话上的 genid 选项覆盖会话 ID,但该覆盖并没有将其放入数据库。
如何在文档中获取有效的 _id 或使用无效的 _id 查询文档?
谢谢!
我的基础架构:Express 4.10、Node v0.12.7、Compose.io、connect-mongo、express-session
【问题讨论】:
-
当你说 "..我试图删除一个文档.." 那么你的意思是什么?您是在会议上打电话给
.destroy()还是在做其他事情?具体来说,您是否为会话存储设置了一个“猫鼬”模型并尝试通过它进行操作? -
是的。我有一个猫鼬模型,我正在使用 Model.remove()
标签: node.js mongodb mongoose express-session connect-mongo