예를 들어 문자열 유형을 int로 변환해 보겠습니다. 집계에서는 필드 유형을 직접 변경할 수 없습니다. 따라서 필드 유형을 변환하는 코드를 작성해야 합니다.
먼저 문서로 컬렉션을 만듭니다. 그 후에 우리는 모든 필드의 유형을 얻을 것입니다. 문서로 컬렉션을 생성하는 쿼리는 다음과 같습니다.
>db.changeDataType.insertOne({"StudentName":"Larry","StudentAge":23,"StudentZipCode":"
10001","isProgrammer":false});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c6ed4976fd07954a4890694")
} find() 메서드를 사용하여 컬렉션의 모든 문서를 표시합니다. 쿼리는 다음과 같습니다.
> db.changeDataType.find().pretty();
다음은 출력입니다.
{
"_id" : ObjectId("5c6ed4976fd07954a4890694"),
"StudentName" : "Larry",
"StudentAge" : 23,
"StudentZipCode" : "10001",
"isProgrammer" : false
} 이제 컬렉션의 모든 필드 유형을 확인하겠습니다. 모든 필드의 유형을 확인하는 쿼리는 다음과 같습니다.
> checkType=db.changeDataType.findOne();
{
"_id" : ObjectId("5c6ed4976fd07954a4890694"),
"StudentName" : "Larry",
"StudentAge" : 23,
"StudentZipCode" : "10001",
"isProgrammer" : false
} 이제 여기에서 위의 변수 "checkType"을 사용하여 모든 변수의 유형을 가져옵니다. 쿼리는 다음과 같습니다.
> typeof checkType._id; object > typeof checkType.StudentName; string > typeof checkType.StudentAge; number > typeof checkType.StudentZipCode; string > typeof checkType.isProgrammer; boolean
이제 "StudentZipCode" 유형을 문자열에서 숫자 유형으로 변경합니다. 쿼리는 다음과 같습니다.
> db.changeDataType.find().forEach(function(ch)
... {
... db.changeDataType.update({
... "_id":ch._id},
... {"$set":
... {
... "StudentZipCode":parseInt(ch.StudentZipCode)
... }
... });
... }); "StudentZipCode" 유형을 문자열에서 숫자 유형으로 변경했습니다. 확인을 위해 위에서 본 것을 따라 컬렉션의 필드 유형을 확인합니다.
> againCheckType=db.changeDataType.findOne();
{
"_id" : ObjectId("5c6ed4976fd07954a4890694"),
"StudentName" : "Larry",
"StudentAge" : 23,
"StudentZipCode" : 10001,
"isProgrammer" : false
} 위의 변수를 사용하여 필드 유형을 확인하십시오.
> typeof againCheckType.StudentZipCode; number
이제 위의 출력을 보면 "StudentZipCode" 필드가 문자열 유형에서 숫자로 변경되었습니다.