NoSql

mongodb 다루기 2

우혁이 아빠 2011. 7. 10. 22:32
1. 원하는 collection의 데이터 모두 지우기
> db.people.remove()
> db.people.find()

2. 인덱스를 생성하면서 원하는 키를 동일한 문서에서 허용하고 싶지 않다면
> db.people.ensureIndex({"id":1,"unique":true})

3. 데이터를 입력해보자.
> db.people.insert({"id":6655, "name":"James", "gender":"male"})
> db.people.insert({"id":6797, "name":"Bond", "gender":"male"})
> db.people.insert({"id":6643, "name":"Cheryl", "gender":"female"})
> db.people.insert({"id":7200, "name":"Scarlett", "gender":"female"})
> db.people.insert({"id":6400, "name":"Jacks", "gender":"male"})

4. 입력된 데이터의 개수를 확인하자.
> db.people.count()
5

5. 모든 데이터 확인. Find All Records
> db.people.find()
{ "_id" : ObjectId("4e197ad0a5687c992a9f7901"), "id" : 6655, "name" : "James", "gender" : "male" }
{ "_id" : ObjectId("4e197ae3a5687c992a9f7902"), "id" : 6797, "name" : "Bond", "gender" : "male" }
{ "_id" : ObjectId("4e197af8a5687c992a9f7903"), "id" : 6643, "name" : "Cheryl","gender" : "female" }
{ "_id" : ObjectId("4e197b09a5687c992a9f7904"), "id" : 7200, "name" : "Scarlett", "gender" : "female" }
{ "_id" : ObjectId("4e197b18a5687c992a9f7905"), "id" : 6400, "name" : "Jacks", "gender" : "male" }

6. id가 6655인 문서를 찾자. Find id = 6655
> db.people.find({"id":6655})
{ "_id" : ObjectId("4e197ad0a5687c992a9f7901"), "id" : 6655, "name" : "James", "gender" : "male" }

7. id가 6700 보다 작거나 같은 문서를 찾자. Find id <= 6700
> db.people.find({"id":{"$lte":6700}})
{ "_id" : ObjectId("4e197b18a5687c992a9f7905"), "id" : 6400, "name" : "Jacks", "gender" : "male" }
{ "_id" : ObjectId("4e197af8a5687c992a9f7903"), "id" : 6643, "name" : "Cheryl","gender" : "female" }
{ "_id" : ObjectId("4e197ad0a5687c992a9f7901"), "id" : 6655, "name" : "James", "gender" : "male" }

8. id가 6700 보다 작거나 같고 gender가 male인 문서를 찾자. Find id <= 6655 and gender = male
> db.people.find({"id":{"$lte":6700},"gender":"male"})
{ "_id" : ObjectId("4e197b18a5687c992a9f7905"), "id" : 6400, "name" : "Jacks", "gender" : "male" }
{ "_id" : ObjectId("4e197ad0a5687c992a9f7901"), "id" : 6655, "name" : "James", "gender" : "male" }

9. name 에 Ja로 시작하고 s로 끝나는 단어를 가진 문서를 찾자. Find name like Ja%s and sort reverse by name
??

10. gender 가 female 이고 id 가 역순으로 정렬하고 결과에 2개까지만 찾자.
> db.people.find({"gender":"female"}).sort({"id":-1}).limit(2)
{ "_id" : ObjectId("4e197b09a5687c992a9f7904"), "id" : 7200, "name" : "Scarlett", "gender" : "female" }
{ "_id" : ObjectId("4e197af8a5687c992a9f7903"), "id" : 6643, "name" : "Cheryl","gender" : "female" }