猫鼬对象关系

时间:2015-08-31 03:29:57

标签: javascript node.js mongodb mongoose

我正在尝试创建一个新的访问令牌对象。在调试器中,我可以看到正确返回user._id值。但是,当分配给令牌用户字段时,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);
    });
};

2 个答案:

答案 0 :(得分:3)

@Component

您已将用户的ID分配给var token = new AccessToken({ user: user._id, client: client._id, deviceId: deviceId }); ,因此您可以将其与user一起使用。 如果您想使用token.user访问用户的ID,请执行以下操作:

token.user._id

但在查询访问var token = new AccessToken({ user: user, client: client._id, deviceId: deviceId });

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

答案 1 :(得分:0)

在mongoose中,您使用.id作为字符串访问._id字段。 What is the difference between id and _id in mongoose?