猫鼬对象关系

mongoose object relationship

本文关键字:关系 对象      更新时间:2023-09-26

我正在尝试创建一个新的访问令牌对象。在调试器中,我可以看到用户。正确返回_id value。但是当分配给令牌用户字段时,token.user。_id是未定义的,token.user.id是一些垃圾值。即使在保存令牌之后,也会观察到相同的行为。

exports.create = function(user, client, deviceId, done) {
    if (!user) return done(new Error('Failed to create client without user'));
    var token = new AccessToken({
        user: user._id,
        client: client._id,
        deviceId: deviceId
    });
    token.save(function(err) {
        if (err) return done(err);
        return done(null, token);
    });
};

With

var token = new AccessToken({
    user: user._id,
    client: client._id,
    deviceId: deviceId
});

您正在将您的用户id分配给user,因此您可以与token.user一起使用它。如果你想用token.user._id访问你的用户id,你应该这样做:

var token = new AccessToken({
    user: user,
    client: client._id,
    deviceId: deviceId
});

但是在查询访问token.user._id

时必须使用.populate('user')

在mongoose中,您使用.id作为字符串访问._id字段。在mongoose中id和_id有什么区别?