일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 장고
- 단축어
- G-Suite
- nocookie
- 그리디 알고리즘
- 아이폰
- selenium
- MongoDB
- 깃허브
- flask
- 링크
- docker-compose
- Google Drive
- List
- venv
- gpu 병렬처리
- 바로학교
- 구글 드라이브
- 충북
- DB
- pymongo
- python
- 추천 영상
- 코딩
- 파이썬
- 알고리즘
- 탐욕 알고리즘
- Django
- 유튜브
- 리스트
- Today
- Total
목록mongoDB (10)
SSAMKO의 개발 이야기
mongo shell로 작업을 해야할 때, DB목록과 Collection 목록을 확인하고 싶을 때가 있다. DB목록 db.adminCommand( { listDatabases: 1 } ) Collection목록 db.getCollectionNames()
find_one_and_update는 말 그대로, 특정조건에 부합하는 문서를 찾아서, update 해주는 명령어다. 사용하다보면 update와 동시에 update된 문서를 받아서 사용하고 싶을때가 있다. 그냥 아래처럼 저장하면, vData = user_col.find_one_and_update({'uid':1}, {'$inc':{ 'version': 1}}) uid:1을 가진 문서를 찾아서 'version' field의 값을 1 증가($inc)시키고, 문서를 return 하게되는데, 이때 return하는 문서는 update되기 이전의 문서, 즉 original문서이다. 이것을 업데이트된 문서로 반환받고 싶다면, from pymongo import ReturnDocument vData = user_col...
mongodb에서 특정 array의 길이가 2이상 되는 document들을 검색하고 싶을때, 보통 array의 길이(사이즈)는 $size를 이용해서 검색한다. 하지만, 이 경우에는 범위range를 사용할 수 없다. 정확하게 매칭되는 하나의 숫자만 검색할 수 있다. col.find({'items':{ '$size' : 2 }}) 이렇게 하면 items에 있는 array의 길이(사이즈)가 2인 document들만 뽑아준다. 여기서 2이상인 것들을 뽑기 위해선 $gte 연산자를 쓰면 될 것 같지만, col.find({'items':{'$size':{ '$gte':2 }}}) 위와 같이 작성한 쿼리는 제대로 실행되지 않는다. 원하는 값을 받기 위해서는, col.find({ '$where':this.items.l..
db.someCollection.update( {}, { $rename: { : }} ) mongoDb에서 key 이름을 변경하고 싶을때, $rename someCollection의 'goodsImage'라는 key name을 'prodImg'로 변경하고 싶을 때, 아래와 같이 커맨드를 입력하면 된다. db.someCollection.update( {'goodsCode':'123'}, { $rename: { 'goodsImage': 'prodImg' }} )
조건에 부합하는 문서를 찾아 update하는 명령어. find_one_and_update 기본적으로는 update 전 문서를 return한다. 만약 조건에 부합하는 문서가 없으면 None을 return한다. update 후의 문서를 return하고 싶을때, from pymongo import ReturnDocument db.example.find_one_and_update( {'_id': 'userid'}, {'$set': {'state': 'good'}}, return_document=ReturnDocument.AFTER) ReturnDocument를 import하고, find_one_and_update의 마지막 인자로 return_documnet=ReturnDocument.AFTER를 넣어주면, up..
DB내 문서들에서 특정 key의 unique값을 알고 싶을 때, distinct { "_id" : ObjectId("54936…dd0c"), "last_name" : "smith", "first_name" : "mike" } { "_id" : ObjectId("54936…dd0d"), "last_name" : "smith", "first_name" : "william" } { "_id" : ObjectId("54936…dd0e"), "last_name" : "smith", "first_name" : "william" } { "_id" : ObjectId("54936…dd0f"), "last_name" : "smith", "first_name" : "mark" } 위와 같은 collection에서 firs..
이미 존재하는 Key를 없애고 싶을 때, $unset { "_id" : 1234, "name" : "Chris", "description" : "Awesome" } 위 문서에서 description 키를 없애서, 아래와 같이 만들고 싶을 때 { "_id" : 1234, "name" : "Chris" } db.collection_name.update({ _id: 1234 }, { $unset : { description : 1} }) 혹은 여러 문서를 한번에 작업하려면 db.collection_name.updateMany({}, { $unset : { description : 1} })
터미널에서 아래와 같이 dump를 할 수 있다. mongodump -d -c -o dump로부터 restore할때는 아래와 같은 명령어를 사용한다. mongorestore 만약, restore할 때, 기존의 데이터를 삭제하고 싶다면 --drop 옵션을 추가해준다. mongorestore --drop --drop옵션을 사용해도, restore대상과 관련없는 collection에는 영향을 미치지 않으므로 걱정하지 않아도 된다. 아래는 공식 문서 링크 mongodump — MongoDB Database Tools 100.2.1 mongodump Synopsis mongodump is a utility for creating a binary export of the contents of a database. m..