我在MongoDB中有文档,它以String格式存储json对象,地址字段如下面的示例所示。如何使用聚合将json字符串转换为对象,而其他字段保持不变?
{
"name": "John",
"contact": 123456789,
"address": "{"building_name": "abc", "block": 40, "street_name": "test street", "postal_code":123456}"
"gender": "m"
}
我用来将json字符串转换为对象的聚合如下所示,但其他字段,如名称,联系人也将被删除。如何只转换地址字段,而不转换姓名和联系人字段。
{
$project:{
"address":{
$function:{
"body": "function(address){ return JSON.parse(address) }",
"args":[
"$address"
],
"lang": "js"
}
}
}
}
1条答案
按热度按时间db2dz4w81#
如果不想删除其他字段,则需要使用$addFields而不是$project
MONGODB PLAYGROUND