다음 구문을 사용하여 collection.find()에서 특정 필드를 반환할 수 있습니다.
사례 1 − 구문은 다음과 같습니다. −
db.yourCollectionName.find({},{"yourFieldName":1}).pretty(); 위의 필드 이름이 1로 설정되어 있으면 해당 필드만 반환됩니다. 0으로 설정하면 0으로 설정된 필드를 제외한 모든 필드를 반환합니다.
사례 2 − 구문은 다음과 같습니다. −
db.yourCollectionName.find({},{"yourFieldName":0}).pretty(); 위의 구문을 이해하기 위해 document로 컬렉션을 생성해 보겠습니다. 문서로 컬렉션을 생성하는 쿼리는 다음과 같습니다 -
> db.returnFieldInFindDemo.insertOne({"StudentName":"John","StudentAge":23,"TechnicalSubject":["MongoDB","MySQL"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c8ebfe72f684a30fbdfd566")
}
> db.returnFieldInFindDemo.insertOne({"StudentName":"Mike","StudentAge":24,"TechnicalSubject":["Java","Python"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c8ebffd2f684a30fbdfd567")
}
> db.returnFieldInFindDemo.insertOne({"StudentName":"Sam","StudentAge":22,"TechnicalSubject":["C","C++"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c8ec00f2f684a30fbdfd568")
}
> db.returnFieldInFindDemo.insertOne({"StudentName":"Carol","StudentAge":20,"TechnicalSubject":["DataStructure","Algorithm"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c8ec0292f684a30fbdfd569")
} find() 메서드를 사용하여 컬렉션의 모든 문서를 표시합니다. 쿼리는 다음과 같습니다 -
> db.returnFieldInFindDemo.find().pretty();
다음은 출력입니다 -
{
"_id" : ObjectId("5c8ebfe72f684a30fbdfd566"),
"StudentName" : "John",
"StudentAge" : 23,
"TechnicalSubject" : [
"MongoDB",
"MySQL"
]
}
{
"_id" : ObjectId("5c8ebffd2f684a30fbdfd567"),
"StudentName" : "Mike",
"StudentAge" : 24,
"TechnicalSubject" : [
"Java",
"Python"
]
}
{
"_id" : ObjectId("5c8ec00f2f684a30fbdfd568"),
"StudentName" : "Sam",
"StudentAge" : 22,
"TechnicalSubject" : [
"C",
"C++"
]
}
{
"_id" : ObjectId("5c8ec0292f684a30fbdfd569"),
"StudentName" : "Carol",
"StudentAge" : 20,
"TechnicalSubject" : [
"DataStructure",
"Algorithm"
]
} 사례 1 − 다음은 특정 필드를 반환하는 쿼리입니다.
쿼리는 다음과 같습니다 -
> db.returnFieldInFindDemo.find().pretty();
출력:
{
"_id" : ObjectId("5c8ebfe72f684a30fbdfd566"),
"StudentName" : "John",
"StudentAge" : 23,
"TechnicalSubject" : [
"MongoDB",
"MySQL"
]
}
{
"_id" : ObjectId("5c8ebffd2f684a30fbdfd567"),
"StudentName" : "Mike",
"StudentAge" : 24,
"TechnicalSubject" : [
"Java",
"Python"
]
}
{
"_id" : ObjectId("5c8ec00f2f684a30fbdfd568"),
"StudentName" : "Sam",
"StudentAge" : 22,
"TechnicalSubject" : [
"C",
"C++"
]
}
{
"_id" : ObjectId("5c8ec0292f684a30fbdfd569"),
"StudentName" : "Carol",
"StudentAge" : 20,
"TechnicalSubject" : [
"DataStructure",
"Algorithm"
]
} 위의 샘플 출력을 보면 "TechnicalSubject" 필드를 1로 초기화했습니다. 이는 모든 문서에서 "TechnicalSubject" 필드만 반환한다는 것을 의미합니다.
사례 2 − 두 번째 경우 "TechnicalSubject" 필드를 0으로 설정하면 "TechnicalSubject"를 제외한 모든 필드를 가져옵니다.
쿼리는 다음과 같습니다 -
> db.retunFieldInFindDemo.find({},{"TechnicalSubject":0}).pretty(); 다음은 출력입니다.
{
"_id" : ObjectId("5c8ebfe72f684a30fbdfd566"),
"StudentName" : "John",
"StudentAge" : 23
}
{
"_id" : ObjectId("5c8ebffd2f684a30fbdfd567"),
"StudentName" : "Mike",
"StudentAge" : 24
}
{
"_id" : ObjectId("5c8ec00f2f684a30fbdfd568"),
"StudentName" : "Sam",
"StudentAge" : 22
}
{
"_id" : ObjectId("5c8ec0292f684a30fbdfd569"),
"StudentName" : "Carol",
"StudentAge" : 20
} 사례 3 − 아시다시피 find()에만 사용하면 모든 필드를 반환합니다.
쿼리는 다음과 같습니다 -
> db.retunFieldInFindDemo.find();
다음은 출력입니다.
{ "_id" : ObjectId("5c8ebfe72f684a30fbdfd566"), "StudentName" : "John", "StudentAge" : 23, "TechnicalSubject" : [ "MongoDB", "MySQL" ] }
{ "_id" : ObjectId("5c8ebffd2f684a30fbdfd567"), "StudentName" : "Mike", "StudentAge" : 24, "TechnicalSubject" : [ "Java", "Python" ] }
{ "_id" : ObjectId("5c8ec00f2f684a30fbdfd568"), "StudentName" : "Sam", "StudentAge" : 22, "TechnicalSubject" : [ "C", "C++" ] }
{ "_id" : ObjectId("5c8ec0292f684a30fbdfd569"), "StudentName" : "Carol", "StudentAge" : 20, "TechnicalSubject" : [ "DataStructure", "Algorithm" ] }