使用Mongoose存储对其他文档的引用时使用Number或ObjectId?

时间:2017-05-24 02:25:21

标签: mongodb mongoose mongoose-schema

例如,假设我们有两个Mongoose定义的模式,一个用于用户集合,另一个用于 posts 集合。

每个帖子文档都需要存储关联的userId(一个用户可以有多个帖子。)

var Schema = mongoose.Schema;

var UserSchema = new Schema({
        name: String
    });

var PostSchema = new Schema({
        userId: Number,
        title: String
    });

我将userId通过userDoc._id手动插入帖子文档的实例中,并试图找出数据类型应该是什么PostSchema.userId

Number还是Schema.Types.ObjectId

1 个答案:

答案 0 :(得分:1)

我会将其设为ObjectId并将其引用到User模型。如果以后需要,这将使populate用户更容易。

var PostSchema = new Schema({
    userId: { type: Schema.Types.ObjectId, ref: 'User' },
    title: String
});