IT/MongoDB

$eq 와 $ne (Operatros/Query and Projection Operators/Comparision Query Operators)

KeepGooing 2021. 4. 12. 18:19
반응형

 

{
    "_id" : ObjectId("5f856dc29e4ddf2b95dc538b"),
    "intent" : "Library",
    "typeArray" : [ 
        {
            "reqType" : "type1",
            "executeInfo" : [ 
                null, 
                {
                    "serviceType" : "md",
                    "serviceData" : [ 
                        null
                    ]
                }
            ]
        }, 
        {
            "reqType" : "type2",
            "executeInfo" : [ 
                null, 
                {
                    "serviceType" : "md",
                    "serviceData" : []
                }, 
                {
                    "serviceType" : "html",
                    "serviceData" : [ 
                        {
                            "searchData" : {
                                "libName" : "은평",
                                "floor" : "1층"
                            },
                            "returnData" : "1"
                        }
                    ]
                }
            ]
        }, 
        {
            "reqType" : "type3",
            "executeInfo" : [ 
                null, 
                {
                    "serviceType" : "md",
                    "serviceData" : []
                }
            ]
        }
    ]
}

 

db.getCollection('intent_service_2').find({"typeArray.executeInfo" : {$eq: null}})

typeArray 배열 안에 executeInfo 배열 안에 값이 null과 같으면 모든 document를 뽑아낸다.

find 함수는 document 단위로 조회하기 때문에 특정 도큐먼트의 특정 필드 값을 추출하려면 aggregate를 활용해야한다.

 

db.getCollection('intent_service_2').find({"typeArray.executeInfo" : {$ne: null}})

반대로 "typeArray.executeInfo" 필드 값이 null이 아닌 경우 조회

 



반응형

'IT > MongoDB' 카테고리의 다른 글

arrayFilters  (0) 2021.04.13
$rename (Update Operators/Field Update Operators)  (0) 2021.04.12
$unset (Field Update Operators)  (0) 2021.04.12
JSON.parse() 활용하여 몽고디비 필드 동적 생성  (0) 2021.04.11
몽고디비 - findOneAndUpdate  (0) 2020.06.13