_id
값에 임의적으로 고유한 값을 생성해서 사용할 수도 있지만 보통은 ObjectId 타입(12byte, 24char)의 값으로 사용_id
값을 가지고 있어야 함_id
필드와 값을 특정하지 않았다면, 자동적으로 _id
필드가 생성되고 값에 ObjectId 타입이 할당mongo shell을 사용하여 컬렉션에 새로운 도큐먼트 추가하기
show dbs
> use database
> show collections
으로 컬렉션 확인{
"_id":ObjectId("5c8ecccqcaa187d17ca6ed16"),
"city":"ALPINE",
"zip":"35014",
"loc":{
"y":33.331165,
"x":86.208934
},
"pop":3062,
"state":"AL"
}
db.zips.insert({})
응답 : WriteResult
nInserted
: 삽입된 도큐먼트의 수를 의미
*0일 경우 삽입 실패를 의미writeError
: 삽입 실패시 해당 원인 출력
insert( )
의 괄호 안에 삽입하고자 하는 도큐먼트를 json 형식으로 작성_id
는 삭제 : 기본 값으로 ObjectId를 생성하여 할당WriteResult
로 출력db.collection_name.insert([{}, {}])
db.collection_name.insert([{}, {}], {"ordered":false})
show dbs
> use database
> show collections
db.zips.find({})
db.collection_name.find({})
db.collection_name.find()
it
명령어를 사용pretty()
사용db.collection_name.find().pretty()
count()
명령어 사용db.collection_name.find().count()
db.collection_name.findOne({})
_id
를 조건을 주어 데이터를 특정할 수 있음db.collection_name.findOne()
응답
matchedCount
: 첫번째 인자로 들어간 조건을 충족하는 도큐먼트의 수modifiedCount
: 업데이트 연산자로 인해 수정된 도큐먼트의 수
db.collection_name.updateOne({}, {})
db.collection_name.updateMany({}, {})
$set
연산자를 사용하면 주어진 필드에 지정된 값을 업데이트할 수 있음db.collection_name.updateOne({"zip":"12534"}, {"$set":{"pop":6235}})
// {“zip”: “12534”}에 해당하는 도큐먼트의 pop 필드가 지정한 값인 6235로 변경
$inc
연산자를 사용하면 특정 필드의 값을 원하는 만큼 증가시킬 수 있음db.collection_name.updateMany({"city":"ALPINE"}, {"$inc":{"pop":10}})
// city가 ALPINE인 모든 도큐먼트의 pop 필드를 10만큼 씩 증가시킴
db.collection_name.updateOne({"student_id":250, "class_id":339},
{"push":{"scores":{"type":"extra credit", "score":100}}})
// {"student_id":250, "class_id":339} : 업데이트할 도큐먼트 조건
// "scores" : 서브 도큐먼트를 삽입할 배열 타입의 값을 가지고 있는 필드
// {"type":"extra credit", "score":100} : 추가할 서브 도큐먼트
응답
acknowledged
: 삭제된 경우 truedeletedCount
: 삭제된 항목의 수
_id
값으로 쿼리해 온 도큐먼트를 삭제하는 것이 좋은 접근법_id
값으로 쿼리를 하지 않는다면, 검색 쿼리문에 다양한 도큐먼트가 적합할 수 있기 때문db.collection_name.deleteOne({})
db.collection_name.deleteMany({})
응답
- Boolean : 삭제된 경우 true
db.collection_name.drop()