08-17 MongoDB CRUD (2)

Ruinak·2021년 8월 17일
0

Bigdata Lesson

목록 보기
11/18
post-thumbnail

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)

  • 쿼리의 결과값에서 보여질 field를 선택
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()
profile
Nil Desperandum <절대 절망하지 마라>

0개의 댓글