Есть ли в mongodb опция фильтра json - PullRequest
1 голос
/ 26 марта 2020

В приведенном ниже файле json я хочу точно отфильтровать десятичное значение в дочернем массиве текста. В то же время, извините за пример кода, на выходе будет показано все значение json вместо отфильтрованного значения.

sample json файл:

{
    "_id" : ObjectId("01"),
    "project_id" : "100",
    "snapshot" : "Symbol",
    "obs" : {    
        "land" : {
            "b2" : {
                "points" : [ 
                    "p1", 
                    "p2"
                ]
            }
        "points" : {
            "p1" : {
                "position" : [ 
                    123.00000000, 
                    123.00000000
                ]
            },
            "p2" : {
                "position" : [ 
                    1235.896523, 

                ]
            }
        "text" : {
            "t2" : {
                "box" : [ 
                    [ 
                        123.0, 
                        3361.0
                    ], 
                    [ 
                        117, 
                        60
                    ], 
                    0.0
                ],               
                "value" : "813"
            },
            "t3" : {
                "box" : [ 
                    [ 
                        1260.76745605469, 
                        726.63720703125
                    ], 
                    [ 
                        51.4486427307129, 
                        88.5970306396484
                    ], 
                    -36.2538375854492
                ],                
                "value" : "27.06"
            }
}

пример кода:

db.getCollection('obs').aggregate([{$match: {project_id: "100",snapshot : "Symbol"}},
    {$addFields:{
          "obs.text":{
               $arrayToObject:{
                    $filter:{
                        input:{$objectToArray:"$obs.text"},
                        cond:{
                              $regexMatch:{
                                   input:"$$this.k",
                                   regex:/t/
                              }
                        }             
                    }
               }
          }
    }}
])

Excepted output:
 "_id" : ObjectId("01"),
        "project_id" : "100",
        "snapshot" : "Symbol",
        "obs" : { 
     "text" : {
    "t3" : {               
                    "value" : "27.06"
                }
    }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...