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