[mongodb] MongoDB에 필드가 있는지 확인

그래서 필드 세트가 있고 null이 아닌 모든 레코드를 찾으려고합니다.

내가 사용하려고 $exists하지만에 따르면 , MongoDB를 문서 이 쿼리가 null 동일 필드를 반환합니다.

$exists 널값을 저장하는 필드가 포함 된 문서와 일치합니다.

이제는 다음과 같이해야한다고 가정합니다.

db.collection.find({ "fieldToCheck" : { $exists : true, $not : null } })

그러나이 작업을 시도 할 때마다 오류가 발생 [invalid use of $not] 합니다.



답변

사용 $ne( “같지 않음”)

db.collection.find({ "fieldToCheck": { $exists: true, $ne: null } })


답변

아래와 같은 컬렉션이 있다고 가정합니다.

{
  "_id":"1234"
  "open":"Yes"
  "things":{
             "paper":1234
             "bottle":"Available"
             "bottle_count":40
            }
}

보틀 필드가 있는지 여부를 알고 싶습니까?

답변 :

db.products.find({"things.bottle":{"$exists":true}})


답변

나는 이것이 나를 위해 작동하는 것을 발견

db.getCollection('collectionName').findOne({"fieldName" : {$ne: null}})


답변