Mongodb: 필드가 존재하는지 확인하는 방법


다음 방법을 사용하여 MongoDB의 컬렉션에 필드가 있는지 확인할 수 있습니다.

방법 1: 필드가 존재하는지 확인

 db.myCollection.find({ " myField ": { $exists : true } })

이 메서드는 myCollection 이라는 컬렉션에 “myField”가 있는지 확인합니다. 그렇다면 필드 이름이 포함된 모든 문서를 반환합니다. 그렇지 않으면 아무것도 반환하지 않습니다.

방법 2: 포함된 필드가 있는지 확인

 db.myCollection.find({ " myField.embeddedField ": { $exists : true } })

이 메서드는 “myField” 필드의 필드 이름 “embeddedField”가 myCollection 이라는 컬렉션에 존재하는지 확인합니다. 그렇다면 필드 이름이 포함된 모든 문서를 반환합니다. 그렇지 않으면 아무것도 반환하지 않습니다.

다음 예는 다음 문서를 사용하여 수집 과 함께 실제로 각 방법을 사용하는 방법을 보여줍니다 .

 db.teams.insertOne({team: "Mavs", class: {conf: "Western", div: "A"}, points: 31 })
db.teams.insertOne({team: "Spurs", class: {conf: "Western", div: "A"}, points: 22 })
db.teams.insertOne({team: "Jazz", class: {conf: "Western", div: "B"}, points: 19 })
db.teams.insertOne({team: "Celtics", class: {conf: "Eastern", div: "C"}, points: 26 })

예시 1: 필드가 존재하는지 확인

다음 코드는 컬렉션에 필드 이름 “points”가 있는지 확인하는 방법을 보여줍니다.

 db.teams.find({ " points ": { $exists : true } })

이 쿼리는 다음 문서를 반환합니다.

 { _id: ObjectId("6203d10c1e95a9885e1e7637"),
  team: 'Mavs',
  class: { conf: 'Western', div: 'A' },
  points: 31 }
{ _id: ObjectId("6203d10c1e95a9885e1e7638"),
  team: 'Spurs',
  class: { conf: 'Western', div: 'A' },
  points: 22 }
{ _id: ObjectId("6203d10c1e95a9885e1e7639"),
  team: 'Jazz',
  class: { conf: 'Western', div: 'B' },
  points: 19 }
{ _id: ObjectId("6203d10c1e95a9885e1e763a"),
  team: 'Celtics',
  class: { conf: 'Eastern', div: 'C' },
  points: 26 }

필드 이름 “points”가 존재하므로 “points” 필드를 포함하는 각 문서가 반환됩니다.

대신 컬렉션에 “steals”라는 필드 이름이 있는지 확인한다고 가정해 보겠습니다.

 db.teams.find({ " steals ": { $exists : true } })

이 필드가 존재하지 않으므로 출력이 반환되지 않습니다.

예 2: 포함된 필드가 있는지 확인

다음 코드는 컬렉션의 “class” 필드에 기본 제공 필드 이름 “div”가 있는지 확인하는 방법을 보여줍니다.

 db.teams.find({ " class.div ": { $exists : true } })

이 쿼리는 다음 문서를 반환합니다.

 { _id: ObjectId("6203d10c1e95a9885e1e7637"),
  team: 'Mavs',
  class: { conf: 'Western', div: 'A' },
  points: 31 }
{ _id: ObjectId("6203d10c1e95a9885e1e7638"),
  team: 'Spurs',
  class: { conf: 'Western', div: 'A' },
  points: 22 }
{ _id: ObjectId("6203d10c1e95a9885e1e7639"),
  team: 'Jazz',
  class: { conf: 'Western', div: 'B' },
  points: 19 }
{ _id: ObjectId("6203d10c1e95a9885e1e763a"),
  team: 'Celtics',
  class: { conf: 'Eastern', div: 'C' },
  points: 26 }

“class” 필드에 포함된 필드 “div”의 이름이 존재하므로 포함된 필드 “div”를 포함하는 모든 문서가 반환됩니다.

대신 컬렉션의 “class” 필드에 기본 제공 필드 이름 “division”이 있는지 확인한다고 가정해 보겠습니다.

 db.teams.find({ " class.division ": { $exists : true } })

이 기본 제공 필드가 존재하지 않으므로 출력이 반환되지 않습니다.

참고 : $exists 함수에 대한 전체 문서는 여기에서 찾을 수 있습니다.

추가 리소스

다음 튜토리얼에서는 MongoDB에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

MongoDB: 모든 필드 이름을 나열하는 방법
MongoDB: 필드 이름을 바꾸는 방법
MongoDB: 새 필드를 추가하는 방법
MongoDB: 필드를 삭제하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다