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对象Id?_Mongodb_Mongodb Query - Fatal编程技术网

在聚合查询期间是否可以将十六进制字符串转换为mongodb对象Id?

在聚合查询期间是否可以将十六进制字符串转换为mongodb对象Id?,mongodb,mongodb-query,Mongodb,Mongodb Query,我想在投影该字段之前将十六进制字符串转换为mongodb ObjectId 我试过这个: 产品文档中的数据: { _id:ObjectId(“571b73c2b190ecdc598b4567”) 类别:[ “571b73c2b190evdc598bad67”, “571b73c2b1c0evdc598cad67” ] } db.products.aggregate([ {$match:{{u id:ObjectId(“571b73c2b190ecdc598b4567”)}, {$unwind:'

我想在投影该字段之前将十六进制字符串转换为mongodb ObjectId

我试过这个:

产品文档中的数据:

{
_id:ObjectId(“571b73c2b190ecdc598b4567”)
类别:[
“571b73c2b190evdc598bad67”,
“571b73c2b1c0evdc598cad67”
]
}

db.products.aggregate([
{$match:{{u id:ObjectId(“571b73c2b190ecdc598b4567”)},
{$unwind:'$categories'},
{$project:{'category_id':ObjectId(“$categories”)},
{$lookup:{from:'categories',localField:'categories',foreignField:'u id',as:'categoriesData'}}
]).pretty()
但它返回一个错误:

错误:无效的对象id:长度


我增加了一点降价,使你的问题更具可读性。您能进一步回答您的问题吗?例如,了解
类别中的数据类型将非常有用?您希望
ObjectId($categories”)
做什么呢?categories包含一个categories id数组,但是是字符串格式,mongo不匹配十六进制字符串和object id。嗨,发散-当您澄清您的答案时,您需要根据您的问题,不仅仅是作为一个评论。我发现这是没有办法做到的,mongo社区正在努力。我增加了一点降价,使你的问题更具可读性。您能进一步回答您的问题吗?例如,了解
类别中的数据类型将非常有用?您希望
ObjectId($categories”)
做什么呢?categories包含一个categories id数组,但是是字符串格式,mongo不匹配十六进制字符串和object id。嗨,发散-当您澄清您的答案时,您需要根据您的问题,不仅仅是作为一个评论。我发现这是没有办法做到的,mongo社区正在努力。