Я хотел бы опустить на любую глубину все пути в документе MongoDB JSON и, возможно, изменить каждое имя поля, используя jq
(mongo shell
, похоже, не способен на это.).В частности, я хотел бы удалить все подчеркивания ("_") во всех именах полей, кроме "_id".Я пробовал различные комбинации recurse
и with_entries
без успеха.Так, например, преобразуйте это:
{
"_id": "doc1",
"field_11": "value_11",
"field_12": {
"field_121": {
"field_1211": "value_1211",
"field_1212": "value_1212"
},
"field_122": {
"field_1221": "value_1221",
"field_1222": "value_1222"
}
},
"field_13": [
{
"field_131": {
"field_1311": "value_1311",
"field_1312": "value_1312"
},
"field_132": {
"field_1321": "value_1321",
"field_1322": "value_1322"
}
}
],
"field_one_four": "value_one_four",
"Field_One_Five": "Value_One_Five"
}
в это:
{
"_id": "doc1",
"field11": "value_11",
"field12": {
"field121": {
"field1211": "value_1211",
"field1212": "value_1212"
},
"field122": {
"field1221": "value_1221",
"field1222": "value_1222"
}
},
"field13": [
{
"field131": {
"field1311": "value_1311",
"field1312": "value_1312"
},
"field132": {
"field1321": "value_1321",
"field1322": "value_1322"
}
}
],
"fieldonefour": "value_one_four",
"FieldOneFive": "Value_One_Five"
}
Бонус: что, если я хочу удалить подчеркивания и , чтобы преобразовать имена составных полей в camelcase?То есть "field_one_four"
станет "fieldOneFour"
, а "Field_One_Five"
станет "fieldOneFive"
.