3. 도큐먼트 조회
Find()
db.COLLECTION_NAME.find( <query>, <projection> )
show collections
db.user.find()
db.user.find().pretty()
쿼리 (Query)
- 데이터베이스 속의 수 많은 정보 속에서 원하는 정보를 찾아내도록 도와주는 필터같은 역할(where 절)
db.user.find({username: "Yein"})
{ "_id" : ObjectId("5f51894e237701f054a0e531"), "username" : "Yein", "password" : 3123 }
- MongoDB에서는 원하는 데이터를 찾기 위해 연산자를 사용
- 연산자의 종류: 비교(Comparison), 논리(Logical), 요소(Element), 배열(Array) 등
비교(Comparison)
논리(Logical)
$where 연산자
- $where 연산자를 통하여 javascript expression 을 사용 할 수 있음.
$regex 연산자
점 연산자
var myVar={hello:'world'}
myVar.hello
var a={name : {firstName: 'Karodi', lastName:'jeong'}}
a.name.firstName
db.A.find({'name.firstName:'Karodi'})
프로젝션 (Projection)
db.user.find( { } ,{ "_id": false, "username": true, "password": true} )
db.user.find( null, {"_id":false, "username":true} )
커서 (cursor)
- 쿼리 결과에 대한 포인터
- find 명령은 결과로 도큐먼트를 직접 반환하지 않고 커서를 반환
- 해당 도큐먼트의 위치 정보만을 반환하여 작업을 효율적으로 만들 수 있음.
- 데이터를 전부 불러올 도큐먼트만 선별적으로 조회 가능
- 커서는 결과값을 읽는 작업을 위해 필요한 것이기 때문에 10분이 지나면 비활성 상태로 전환.
var cursor = db.user.find()
Cursor
cursor.hasNext()
cursor.next()
It
var arr=db.user.find().toArray()
Arr[5]
db.cappedCollection.find().forEach(function(document){
작업
...})
4. 도큐먼트 수정
도큐먼트 교체
db.collection.updateOne(
<filter>,
<update>,
{
upsert: <boolean>,
writeConcern: <document>,
collation: <document>,
arrayFilters: [ <filterdocument1>, ... ],
hint: <document|string>
}
)
db.collection.updateMany(
<filter>,
<update>,
{
upsert: <boolean>,
writeConcern: <document>,
collation: <document>,
arrayFilters: [ <filterdocument1>, ... ],
hint: <document|string>
}
)
업데이터 연산자 : 필드
업데이트 연산자 : 배열 연산자
업데이트 연산자: 배열 -한정어
5. 도큐먼트 삭제
db.collection.deleteOne({<query>})
db.collection.deleteMany({<query>})
db.character.deleteOne({name:'x'})
db.character.deleteMany({name:'x'})
db.character.deleteMany({})
db.character.drop()
db.dropDatabase()