MongoDB에서 이름으로 사용자 찾기
MongoDB에서 이름을 기준으로 사용자 문서를 조회하려면 find() 메서드를 사용하면 됩니다. 먼저 예제 컬렉션을 만들고 문서를 삽입해 보겠습니다.
1. 컬렉션 생성 및 문서 삽입
insertOne() 메서드를 사용해 demo504 컬렉션에 사용자 이름 데이터를 차례로 추가합니다.
> db.demo504.insertOne({"Name":"Chris"});{ "acknowledged" : true, "insertedId" : ObjectId("5e8823ee987b6e0e9d18f570")}> db.demo504.insertOne({"Name":"John"});{ "acknowledged" : true, "insertedId" : ObjectId("5e8823f2987b6e0e9d18f571")}> db.demo504.insertOne({"Name":"David"});{ "acknowledged" : true, "insertedId" : ObjectId("5e8823f5987b6e0e9d18f572")}2. 전체 문서 확인하기
삽입된 모든 문서를 확인하려면 조건 없이 find() 메서드를 호출합니다.
> db.demo504.find();
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
{ "_id" : ObjectId("5e8823ee987b6e0e9d18f570"), "Name" : "Chris" }{ "_id" : ObjectId("5e8823f2987b6e0e9d18f571"), "Name" : "John" }{ "_id" : ObjectId("5e8823f5987b6e0e9d18f572"), "Name" : "David" }3. 이름으로 특정 사용자 조회하기
이름이 'John'인 사용자만 조회하려면 find()에 조건 객체를 전달하면 됩니다.
> db.demo504.find({Name:"John"});실행 결과, 조건에 일치하는 문서 하나만 반환됩니다.
{ "_id" : ObjectId("5e8823f2987b6e0e9d18f571"), "Name" : "John" }추가 팁
대소문자를 구분하지 않고 검색하려면 정규식을 활용할 수 있습니다. 예를 들어 db.demo504.find({Name: /john/i})처럼 작성하면 'John', 'john', 'JOHN' 등 모든 표기를 포함한 결과를 얻을 수 있습니다. 또한 검색 성능을 높이려면 Name 필드에 인덱스를 생성하는 것이 좋습니다.