猫鼬对象关系
Posted
技术标签:
【中文标题】猫鼬对象关系【英文标题】:mongoose object relationship 【发布时间】:2015-11-25 00:52:58 【问题描述】:我正在尝试创建一个新的访问令牌对象。在调试器中,我可以看到正确返回了 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);
);
;
【问题讨论】:
【参考方案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 作为对象引用,而不是作为字符串。以上是关于猫鼬对象关系的主要内容,如果未能解决你的问题,请参考以下文章