Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB 3.6如何将字符串转换为对象Id_Mongodb_Lookup_Objectid - Fatal编程技术网

MongoDB 3.6如何将字符串转换为对象Id

MongoDB 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') 有没有办法将字符串转换

我正在使用MongoDB 3.6。我正在尝试如下所示的聚合$lookup

$lookup

{
  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)//错误!回调未定义