: document database <<== 데이터를 테이블로 관리하는게 아닌
문서처럼 저장하는 데이터베이스, JSON과 유사, 필드-값 형태로 가지고 있고 컬렉션이라고 하는 그룹으로 묶어서 관리함
그러해서 mongoDB에서 json형태로 클러스터를 import 하거나 export하는 것과
bson형태로 mongorestore나 mongodump하는 방법은 다음과 같다.
: mongoimport, mongoexport
mongodump --uri ""
Atals Cluster URL ==>> "mongodb+srv://:@.mongodb.net/database_name"
mongoimport --uri "" --drop=.json
: mongorestore, mongodump
mongoexport --uri "" --collection --out=.json
mongorestore --uri "" --drop dump
show collections
show dbs
(터미널로 아틀라스 클러스터에 접속하는 명령어는 ? )
mongosh "mongodb+srv://cluster0.ccrfk.mongodb.net/myFirstDatabase" --username dbUser
use 데이터베이스이름
/ 만약 한 컬렉션에 _id가 같은 도큐먼트가 있다면 duplicate key 에러가 날 것 이다./
/
insert 명령어를 사용하면, 주어진 도큐먼트 배열의 인덱스 순서로 작업이 실행된다.
그러나 ordered를 추가하면, 순서에 상관없이 고유한 _id를 가진 도큐먼트는 모두 컬렉션에 삽입된다.
/
db.컬렉션이름.find({
}).pretty();
db.컬렉션이름.findOne({
})
// 주어진쿼리문에 부합하는 가장 첫번째 도큐먼트를 리턴함
db.컬렉션이름.find({
}).count();
MQL(MongoDB Query Language) 연산자인 inc는 increment의 약자일듯)
$set 연산자는 주어진 필드에 지정된 값을 업데이트 해줌
$push 연산자는 배열로 이루어진 필드의 값에 요소를 추가하기 위한 연산자
ex) db.컬렉션이름.updateMany(쿼리문, {"$inc": { "필드이름" : 값}})
ex) db.grades.updateOne({"student_id" : 250, "class_id": 339}, {"$push": {"scores": {"type": "extra credit", "score": 100}}})
deleteOne
주어진 기준에 맞는 다수의 도큐먼트 중 첫번째 도큐먼트 하나를 삭제
deleteMany
쿼리문과 일치하는 모든 도큐먼트를 삭제
db.컬렉션이름 .drop()
컬렉션 삭제