mongodb关于字符串id与ObjectId关联查询的办法

 db.ub.aggregate([
    {
        $match: {
            _id: ObjectId("xxxx")
        }
    },
    {
	// 提取users里面的user_id转换未ObjectId,名称定为uid
      $addFields: {"uid":{$toObjectId: "$user_id"}}
    },
    {
        $lookup: {
            from: "users",// 关联集合
			// 这里就可以用这个uid进行关联
            localField: "uid",
            foreignField: "_id",//user里面的_id就是ub的外键
            as: "user"
        }
    },{
        $unwind: "$user"
    }
])

注意在3.4的mongo里面无法支持$toObjectId的写法,4.2测试是可以使用的

posted @ 2023-02-14 10:11  沙漠皇帝  阅读(58)  评论(0编辑  收藏  举报