반응형

IT/MongoDB 15

Studio 3T BSON 폴더 import 문제해결

Wed Oct 23 15:24:29 KST 2024: BSON Import - Preparing collections to restore fromStudio 3T에서 BSON 폴더를 이용해 Collection을 Import할 때 저장되지 않는 문제 해결 방법문제발생:Studio 3T를 사용하여 BSON 폴더로 Collection을 Import할 때 저장이 안 되는 문제는, 폴더명이 Import할 DB명과 동일하지 않기 때문에 발생합니다. 이로 인해 Studio 3T가 데이터를 제대로 인식하지 못하게 됩니다.해결 방법:BSON 파일 Export 후 파일 구조 확인Collection을 export하면, 해당 DB명으로 된 폴더가 생성됩니다.이 폴더에는 데이터 파일(.bson)과 메타데이터 파일(metadat..

IT/MongoDB 2024.10.23

arrayFilters

db.getCollection('intent_service_2').updateMany( {"typeArray.executeInfo.serviceData.searchData.libName" : {$exists: true} }, {$set:{"typeArray.$[ap].executeInfo.$[ap2].serviceData.$[ap3].searchData.floor" : '1층'}}, {arrayFilters:[{"ap.reqType":"type1"}, {"ap2.serviceType":"md"}, {"ap3.searchData.libName":"a도서관"}]} ) arrayFilters는 array 안의 필드나 중첩 array 안의 필드에 대해 접근하고자 할 때 유용하게 쓰일 수 있다. 일종의 식별자의 ..

IT/MongoDB 2021.04.13

$rename (Update Operators/Field Update Operators)

db.getCollection('intent_service_2_origin').updateMany({}, {$rename:{"intent" : "case"}}) 필드명 intent를 case로 일괄 수정 db.getCollection('intent_service_2_origin').updateMany({}, {$rename:{"typeArray.$[arrPosition].reqType" : "type"}}, {arrayFilters:[{"arrPosition.reqType" : "type1"}]}); "The source field for $rename may not be dynamic: typeArray.$[arrPosition].reqType 불가! array 안의 필드명은 아직 연산자로 지원하지 않..

IT/MongoDB 2021.04.12

$eq 와 $ne (Operatros/Query and Projection Operators/Comparision Query Operators)

{ "_id" : ObjectId("5f856dc29e4ddf2b95dc538b"), "intent" : "Library", "typeArray" : [ { "reqType" : "type1", "executeInfo" : [ null, { "serviceType" : "md", "serviceData" : [ null ] } ] }, { "reqType" : "type2", "executeInfo" : [ null, { "serviceType" : "md", "serviceData" : [] }, { "serviceType" : "html", "serviceData" : [ { "searchData" : { "libName" : "은평", "floor" : "1층" }, "returnData" : "1..

IT/MongoDB 2021.04.12

$unset (Field Update Operators)

array 안의 요소 지우는 방법 (How to remove an array element in mongodb) 이 것만 알아도 실무에서 몽고디비 30% 먹고들어간다. 사실상 delete 함수 update로 대체하고 있다 수정은 말할 것도 없고 따라서 update함수의 Operators만 잘 알고 있으면 필드 수정과 삭제와 관련해서 몽고디비 데이터를 마음대로 조작할 수 있다. 배워야할 것이 많지만 주로쓰는 것 위주로 파악하면 학습효과를 극대화 시키고 학습의 선순환을 이룩할 수 있기에 반드시 파악해보자 { "_id" : ObjectId("5f856dc29e4ddf87b95dc538e"), "intent" : "Library", "typeArray" : [ { "reqType" : "type1", "exec..

IT/MongoDB 2021.04.12

JSON.parse() 활용하여 몽고디비 필드 동적 생성

JSON.parse() developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse JSON.parse() - JavaScript | MDN JSON.parse() JSON.parse() 메서드는 JSON 문자열의 구문을 분석하고, 그 결과에서 JavaScript 값이나 객체를 생성합니다. 선택적으로, reviver 함수를 인수로 전달할 경우, 결과를 반환하기 전에 변형할 수 developer.mozilla.org JSON 문자열의 구문을 분석하고, 그 결과에서 JavaScript 값이나 객체를 생성하는 메소드 '{"result":true, "count":42}' -----> {"result":true, "count":4..

IT/MongoDB 2021.04.11

몽고디비 - findOneAndUpdate

오늘 사용할 것은 arrayFilters이며 이는 몽고디비 버전 3.6이상부터 가능하오니 가급적이면 3.6이상 혹은 4.0이상으로 버전업으로 하시고 사용하시길 바랍니다. 이번에는 john의 returnData를 파인애플에서 포도로 바꾸는 쿼리이다. $set 과 arrayFilters 를 쓴다. (참고로 String형으로 특정 필드의 값을 변경하고 싶으면 $set을 Array형으로 특정 필드를 변경하고 싶으면 $push를 쓴다.) $set 과 arrayFilters db.getCollection('intent_test').findOneAndUpdate( {intent : "MBTI_TYPE"}, {$set : {"intentArray.$[t].executeInfo.$[c].type2Data.$[d].ret..

IT/MongoDB 2020.06.13
반응형