【发布时间】:2019-12-17 12:32:33
【问题描述】:
我的 UnitSchema 中有一个静态方法,它通过令牌查找单元。它通过一个令牌作为参数,并尝试在 Unit 模型上使用普通 findOne 方法查找单元:
UnitSchema.statics.findByToken = async function (token) {
const Unit = this
let unit = await Unit.findOne({ 'Tokens.token': token }).populate('Organisation')
return unit
}
我用这个方法很久了,它总是返回正确的对象。现在,似乎突然无缘无故,它返回了一个“完整”的猫鼬对象,其中包含所有额外的信息和功能,并且所有对象 ID 现在都是对象格式而不是字符串格式,例如:
ObjectID {
_bsontype: 'ObjectID',
id: <Buffer 5c 85 43 16 f1 ad 70 d8 f8 97 48 78>
}
代替:
_id: '5d49595246853f14fc5168e9'
因此,我无法再使用正常填充字段:.populate('field'),这会破坏我的代码。
我已经疯狂地四处搜索,但找不到对此的解释,因此我不知道如何解决它。非常感谢您的帮助!
【问题讨论】:
标签: javascript node.js mongoose static mongoose-populate