Computer >> 컴퓨터 >  >> 프로그램 작성 >> MongoDB

MongoDB에서 문자열을 숫자 값으로 변환하는 방법은 무엇입니까?

<시간/>

MongoDB에서 문자열을 숫자 값으로 변환하려면 몇 가지 코드를 사용해야 합니다.

먼저 문서로 컬렉션을 생성해 보겠습니다. 문서로 컬렉션을 생성하는 쿼리는 다음과 같습니다.

> db.convertStringToNumberDemo.insertOne({"EmployeeId":"101","EmployeeName":"Larry"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7f56528d10a061296a3c31")
}
> db.convertStringToNumberDemo.insertOne({"EmployeeId":"1120","EmployeeName":"Mike"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7f56648d10a061296a3c32")
}
> db.convertStringToNumberDemo.insertOne({"EmployeeId":"3210","EmployeeName":"Sam"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7f566e8d10a061296a3c33")
}

find() 메서드를 사용하여 컬렉션의 모든 문서를 표시합니다. 쿼리는 다음과 같습니다 -

> db.convertStringToNumberDemo.find().pretty();

다음은 출력입니다 -

{
   "_id" : ObjectId("5c7f56528d10a061296a3c31"),
   "EmployeeId" : "101",
   "EmployeeName" : "Larry"
}
{
   "_id" : ObjectId("5c7f56648d10a061296a3c32"),
   "EmployeeId" : "1120",
   "EmployeeName" : "Mike"
}
{
   "_id" : ObjectId("5c7f566e8d10a061296a3c33"),
   "EmployeeId" : "3210",
   "EmployeeName" : "Sam"
}

다음은 MongoDB에서 문자열을 숫자 값으로 변환하는 쿼리입니다. "EmployeeId" 문자열을 숫자 값으로 변경합니다. 쿼리는 다음과 같습니다 -

> db.convertStringToNumberDemo.find().forEach(function(x)
   ... {
      ... db.convertStringToNumberDemo.update
      ... (
         ...
         ... {
            ... "_id": x._id,
            ...
         ... },
         ... {
            ... "$set":
            ... {
               ... "EmployeeId": parseInt(x.EmployeeId)
            ... }
         ... }
      ... )
   ... }
... );

이제 컬렉션에서 문서를 확인하십시오. 쿼리는 다음과 같습니다 -

> db.convertStringToNumberDemo.find().pretty();

다음은 정수로 변환된 문자열 값(EmployeeId)을 표시하는 출력입니다 -

{
   "_id" : ObjectId("5c7f56528d10a061296a3c31"),
   "EmployeeId" : 101,
   "EmployeeName" : "Larry"
}
{
   "_id" : ObjectId("5c7f56648d10a061296a3c32"),
   "EmployeeId" : 1120,
   "EmployeeName" : "Mike"
}
{
   "_id" : ObjectId("5c7f566e8d10a061296a3c33"),
   "EmployeeId" : 3210,
   "EmployeeName" : "Sam"
}