티스토리 뷰
typeof db
db.users.insert({name:"둘리"}) // name이 둘리인 document 생성
show collections // collections == table
db.users.find() // select * from users
db.users.find({name:"둘리"}) // 조건주는거 id는 자동으로붙음
db.users.insert({name:"마이콜"})
db.users.update({} // 조건(다업데이트), {} // 업데이트할내용)
db.users.update({name:"둘리"} // 조건 name이 둘리, {name:"어쩌구"} // 어쩌구로 변경)
db.users.remove({}) // 몽땅 다지움 안에 {}는 where절 조건이없는거
db.users.find({}, {_id:0}) // 0이면 보이지않고 1이면 보임 id 이외의 속성을 추가할시 속성을 쓰지않으면 보이지않는걸로 간주
db.users.count() // document count세기
db.users.save // save는 없으면 넣고 있으면 update
db.users.update({name:"둘리"} // 조건, {$set:{name:"또치"} // 바꿀내용}) // update users set name="또치" where name="둘리"
set은 꼭 써줘야한다 안그러면 다바뀌니까
지울때는 unset
db.users.update({name:"michol"}, {$unset:{name:"또치"}})
db.users.update({}, {$set:{age:0, email:null}}, false // 조건에맞지않으면 false, true // 다 바꿔라)
db.users.update({name:"또치"}, {$inc:{age:-20}}) // inc는 값을 더하거나 뺄수있음
db.users.update({}, {$set:{hobbies:[]}}, false, true) // 배열추가
db.users.update({name:"또치"}, {$push:{hobbies:"수영"}}) // 배열에 값 추가 뒤로
pushAll이 3버전부터 변함 db.users.update({name:"michol"}, {$pushAll:{hobbies:["독서"]}}) 이건 이제 에러
db.users.update({name:"michol"}, {$push:{hobbies:{$each:["독서", "오리"]}}}) // 이형식으로 변함
컬럼은 보이게 안하고싶으면 id를 제외한 컬럼에 값을 하나씩 주기시작하면 그뒤에 안적어주면 안보임
db.users.find({}, {_id:0, name:1}) // id는 안보이고 name은 보이고 그외 컬럼은 다안보임 id만 빼고 0을 섞어서 쓸수없음
속성의 순서가 다르면 문서가 다르다라고 인식해야하지만 다른건아니다?
db.users.update({name:"마이콜"}, {$inc:{age:16}, $set:{hobbies:["요리", "수영"]},$set:{contacts:{phone:"111-1111-1111", email:"michol@gmail.com"}}})
db.users.find({age:{$lt:20, $gt:10}})
$!= == 같지않으면
$all == 모두일치
$in == 중에 하나라도 일치
$nin == 중에 하나라도없는
$exists == 존재안하면 false, 존재하면 true
$or == 둘중 하나
나이가 20살 미만
db.users.find({age:{$lt:20}}, {_id:0, name:1, age:1, email:1, contacts:1, hobbies:0})
나이가 20살 이상이고 수영을 취미로 가지고 있는 사용자
db.users.find({hobbies:"수영", age:{$gte:20}}, {_id:0, name:1, age:1, hobbies:1})
나이가 16~20 사이의 사용자 검색
db.users.find({age:{$gte:16, $lte:20}}, {_id:0, name:1, age:1})
수영을 취미로 가지고 있는 사용자
db.users.find({hobbies:{$in: ["수영", "요리"]}}, {_id:0, name:1, hobbies:1})
수영을 취미로 가지고 있지 않는 사용자
db.users.find({hobbies:{$nin: ["수영"]}}, {_id:0, name:1, hobbies:1})
전화번호가 000-0000-0000 인 사용자 (중첩쿼리)
db.users.find({"contacts.phone": "000-0000-0000"}, {_id:0, name:1, contacts:1})
연락처가 없는 사용자
db.users.find({contacts:{$exists:false}}, {_id:0, name:1, contacts:1})
취미가 수영이거나 축구인 사용자 (OR 조건)
db.users.find({$or : [{hobbies:"수영"}, {hobbies: "축구"}]}, {_id:0, name:1, hobbies:1})
수영을 취미로 가지고 있는 사용자 삭제 하기
db.users.remove({hobbies:"수영"})
컬렉션 내의 모든 문서 삭제
db.users.remove({})
데이터베이스에 대한 정보 얻기
show dbs
현재 사용 중인 데이터베이스의 모든 컬렉션 보기
show collections
데이터베이스에 대한 좀더 자세한 정보 얻기
db.stats()
각 컬렉션에 대한 좀더 자세한 정보 얻기
db.users.stats()
취미가 수영이거나 축구인 사용자 (OR 조건)
db.users.find({$or : [{hobbies:"수영"}, {hobbies: "축구"}]}, {_id:0, name:1, hobbies:1})
'DataBase > MongoDB' 카테고리의 다른 글
MEAN Stack + MongoDB 설명 (0) | 2019.04.02 |
---|