MongoDB 3.6如何将字符串转换为对象Id
我正在使用MongoDB 3.6。我正在尝试如下所示的聚合$lookup $lookupMongoDB 3.6如何将字符串转换为对象Id,mongodb,lookup,objectid,Mongodb,Lookup,Objectid,我正在使用MongoDB 3.6。我正在尝试如下所示的聚合$lookup $lookup { from: 'm_mtr', localField: 'mtdid', foreignField: '_id', as: 'mm' } 这对我不起作用,因为“mtdid”是一个字符串,其值类似于“5bdbe5bcff10z046fcf8f04a”,“u id”是一个对象id字段,其值类似于“ObjectId('5bdbe5bcff10z046fcf8f04a') 有没有办法将字符串转换
{
from: 'm_mtr',
localField: 'mtdid',
foreignField: '_id',
as: 'mm'
}
这对我不起作用,因为“mtdid”是一个字符串,其值类似于“5bdbe5bcff10z046fcf8f04a”,“u id”是一个对象id字段,其值类似于“ObjectId('5bdbe5bcff10z046fcf8f04a')
有没有办法将字符串转换为ObjectId?我知道这在Mongodb 4.0中是可能的。不幸的是,除了3.6之外,我没有其他选择。在mongoose中,您可以使用以下功能:
let id = new mongoose.Types.ObjectId('5bdbe5bcff10z046fcf8f04a');
这是4.0版发布的MongoDB公开发行版,您必须尝试切换到4.0版,因为它有更多的功能,当然迁移不会带来太大的影响
可能与我提到的“尝试此项”重复,没有更改为4.0的选项。客户要求是3.6汉克斯!ObjectId能否将字符串变量作为参数?否。您需要先将字符串转换为ObjectId。//获取objectID类型var objectID=require('mongodb')。objectID;变量ID字符串='5bdbe5bcff10z046fcf8f04a';collection.findOne({u id:new ObjectID(idString)},console.log)//确定collection.findOne({u id:idString},console.log)//错误!回调未定义