MongoDB 3.6 如何将字符串转换为Object Id
MongoDB 3.6 how to convert string to Object Id
我正在使用 MongoDB 3.6。我正在尝试如下所示进行聚合 $lookup。
$lookup
{
from: 'm_mtr',
localField: 'mtdid',
foreignField: '_id',
as: 'mm'
}
这对我不起作用,因为 'mtdid' 是一个字符串,其值类似于“5bdbe5bcff10z046fcf8f04a”,而“_id”是一个对象 ID 字段,其值类似于“ObjectId('5bdbe5bcff10z046fcf8f04a')”。
有没有办法将字符串转换为ObjectId?我知道这在 Mongodb 4.0 中是可能的。不幸的是,除了 3.6,我别无选择。
在mongoose中,可以使用这个函数:
let id = new mongoose.Types.ObjectId('5bdbe5bcff10z046fcf8f04a');
这是一个 MongoDB open issue,在 4.0 中发布,您必须尝试切换到 4.0,因为它具有更多功能,当然不会因迁移而产生巨大影响。
我正在使用 MongoDB 3.6。我正在尝试如下所示进行聚合 $lookup。
$lookup
{
from: 'm_mtr',
localField: 'mtdid',
foreignField: '_id',
as: 'mm'
}
这对我不起作用,因为 'mtdid' 是一个字符串,其值类似于“5bdbe5bcff10z046fcf8f04a”,而“_id”是一个对象 ID 字段,其值类似于“ObjectId('5bdbe5bcff10z046fcf8f04a')”。
有没有办法将字符串转换为ObjectId?我知道这在 Mongodb 4.0 中是可能的。不幸的是,除了 3.6,我别无选择。
在mongoose中,可以使用这个函数:
let id = new mongoose.Types.ObjectId('5bdbe5bcff10z046fcf8f04a');
这是一个 MongoDB open issue,在 4.0 中发布,您必须尝试切换到 4.0,因为它具有更多功能,当然不会因迁移而产生巨大影响。