【问题标题】:mongoose object relationship猫鼬对象关系
【发布时间】:2023-03-19 18:04:02
【问题描述】:

我正在尝试创建一个新的访问令牌对象。在调试器中,我可以看到正确返回了 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);
    });
};

【问题讨论】:

    标签: javascript node.js mongodb mongoose


    【解决方案1】:

    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')

    【讨论】:

      【解决方案2】:

      在猫鼬中,您使用.id 以字符串形式访问._id 字段。 What is the difference between id and _id in mongoose?

      【讨论】:

      • 是的。但我的意图是在这里使用 _id 作为对象引用,而不是作为字符串。
      猜你喜欢
      • 2018-01-22
      • 2018-08-23
      • 1970-01-01
      • 2014-06-15
      • 1970-01-01
      • 1970-01-01
      • 2017-03-31
      • 1970-01-01
      • 2022-01-14
      相关资源
      最近更新 更多