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

时间:2016-08-22 07:14:55

标签: mongodb mongodb-query

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

我试过这个:

产品数据文档:

{ _id : ObjectId("571b73c2b190ecdc598b4567") categories : [ "571b73c2b190evdc598bad67", "571b73c2b1c0evdc598cad67" ] }

  db.products.aggregate([
    { $match : { _id : ObjectId("571b73c2b190ecdc598b4567") } },
    { $unwind : '$categories' },    
    { $project : { 'category_id' : ObjectId("$categories") } },
    { $lookup : { from : 'categories', localField: 'categories', foreignField : '_id', as : 'categoriesData' } }
]).pretty()

但它返回错误:

  

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

0 个答案:

没有答案