Schema中的MongoDB的ObjectId关系在服务器重启后不起作用

时间:2014-09-08 03:16:11

标签: node.js mongodb express mongoose

我使用mongoose包在NodeJs中创建了一个简单的mongo模式。

var ProjectSchema = new Schema({
    name: String,
    author: {type: Schema.ObjectId, ref: 'User'},
    description: String,
    date: { type: Date, default: Date.now }
};

当我想测试帖子的作者是否是当前用户时,如果项目是在当前服务器会话上创建的(也就是没有重新启动),那么它将起作用。但是,如果我重新启动服务器,则Object Id's不相等。

我该如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

将作者类型保留为String。 从会话中获取当前用户的数据后,即可执行

user._id.toString() 

获取objectID的字符串表示形式,其中我的用户是dbObject。然后,您可以在ProjectSchema集合中查找此 id 以获取任何作者匹配