Как вернуть объект с переменной глубиной в виде строки - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть коллекция, в которой хранятся документы, подобные приведенному ниже.

{ 
    "_id" : "MG-3100104-B4AC7195950A471D9340DED6AE8EEE64", 
    "properties" : {
        "NUM_AREA" : 57.78, 
        "NUM_MODULO" : 1.44, 
        "TIPO_IMOVE" : "IRU", 
        "SITUACAO" : "AT", 
    }, 
    "geometry" : {
        "type" : "Polygon", 
        "coordinates" : [
            [
                [
                    -47.33079937601371, 
                    -18.36932578264851
                ], 
                [
                    -47.3308262982889, 
                    -18.369403647612213
                ], 
                [
                    -47.331338496081, 
                    -18.36988449551799
                ]
            ]
        ]
    }
}

У меня нет никакого контроля над данными внутри properties и geometry, они могут иметь переменную глубину и data.

Но мне нужно вернуть приложению properties и geometry в виде строки, как показано ниже:

{ 
    "_id" : "MG-3100104-B4AC7195950A471D9340DED6AE8EEE64", 
    "properties" : "{ 'NUM_AREA' : 57.78, 'NUM_MODULO' : 1.44, 'TIPO_IMOVE' : 'IRU', 'SITUACAO' : 'AT', }", 
    "geometry" : "{ 'type' : 'Polygon', 'coordinates' : [ [ [ -47.33079937601371, -18.36932578264851 ], [ -47.3308262982889, -18.369403647612213 ], [ -47.331338496081, -18.36988449551799 ] ] ] }"
}

В псевдокоде я бы увидел некоторые агрегирование запросов, например:

db.getCollection("collection").aggregate(
    [
        { 
            "$project" : { 
                "_id" : 1, 
                "properties" : { $stringify: "$properties" }, 
                "geometry" : { $stringify: "$geometry" }
            }
        }
    ]
);

ВАЖНО: Мой запрос должен быть конвейером агрегации MongoDB.

...