java objectid_需要一种解决方法来查找objectID foreignField的字符串

我是mongodb的新手,目前我正面临着这个问题,

db.medical_records.aggregate([

{

"$group": {

"_id": {

"disease_id": "$disease_id" //a string

}, "count": { "$sum": 1 }

}

},

{

"$addFields": {

"disease_id": { "$toObjectId": "$disease_id" }

// i tried to change it into objectID so i could $lookup it

}

},

{

"$lookup": {

"from": "diseases",

"localField": "disease_id",

"foreignField": "_id",

"as": "disease"

}

}

])

这是我的医疗记录收集的一个例子

{

"_id" : ObjectId("5989c8f13f3958120800682e"),

"disease_id" : "5989c8f13f3958120800682f",

"patient_id" : "5989c8f13f3958120800681f"

}

疾病收集

{

"_id" : ObjectId("5989c8f13f3958120800682f"),

"name" : "Culpa autem officia.",

"code" : "Est aperiam."

}

而我期望的结果是那种,

{

"_id" : {disease_id: 5989c8f13f3958120800682f},

"count" : 20,

"disease" : {

"_id" : ObjectId("5989c8f13f3958120800682f"),

"name" : "Culpa autem officia.",

"code" : "Est aperiam."

}

}

如上所述,我需要将我的医疗记录收集到疾病收集中 .

当我尝试将其查找到疾病集合时,它失败了,因为foreignField与localField的类型不同 . 我一直在努力寻找解决这个问题的方法 . 上面的查询返回了另一个错误,

Unrecognized expression '$toObjectId'

这个问题可能已被问过几次,但我真的需要解决这个问题,请帮助

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值