2016년 4월 3일 일요일

몽고디비 맛보기

몽고디비를 사용할때 가장먼저

1. 사용자 관리자 계정을 만든다.
2. 데이터베이스 관리자 계정을 만든다

db.addUser({user:"useradmin",pwd:"test", roles:["userAdminAnyDatabase"]})

db.adduser는 더이상 사용되지 않는다.
db.createUser({user:"useradmin",pwd:"test", roles:["userAdminAnyDatabase"]})
를 사용한다.


몽고디비 재시작

sudo service mongod restart
 
 
2의 데이터 베이스 관리자 계정을 만든다
 
> db.createUser({user:"dbadmin",
... pwd:"test",
... roles:[
... 
... "readWriteAnyDatabase","dbAdminAnyDatabase","clusterAdmin"]})
Successfully added user: {
 "user" : "dbadmin",
 "roles" : [
  "readWriteAnyDatabase",
  "dbAdminAnyDatabase",
  "clusterAdmin"
 ]
}
 
 
 
=========================================================== 
200000개의 도큐먼트를 만들어보자



for(i=0; i<200000;i++){

    db.numbers.save({num:i});

}



잠시 시간이 걸린다.



db.numbers.count()

200000





몽고DB로 밀린 일기를 34년치를 써보는것도 좋을것같다 ^^



12410개 밖에 안되네



for(i=0; i<12410; i++){

    db.diary.save({num:i});

}



나때는 국민학교였으니까



국민학교 방학숙제 밀린일기에서 초입부분엔 항상 이렇게 시작한다



나는 오늘...



나는 오늘..   
 
=====================================================
 
> db.numbers.find({num:{"$gt":199995}}).explain()
{
 "queryPlanner" : {
  "plannerVersion" : 1,
  "namespace" : "tutorial.numbers",
  "indexFilterSet" : false,
  "parsedQuery" : {
   "num" : {
    "$gt" : 199995
   }
  },
  "winningPlan" : {
   "stage" : "COLLSCAN",
   "filter" : {
    "num" : {
     "$gt" : 199995
    }
   },
   "direction" : "forward"
  },
  "rejectedPlans" : [ ]
 },
 "serverInfo" : {
  "host" : "sharpscar-W65-67SF",
  "port" : 27017,
  "version" : "3.2.4",
  "gitVersion" : "e2ee9ffcf9f5a94fad76802e28cc978718bb7a30"
 },
 "ok" : 1
}
 
 
explain() 함수를 사용한 결과  queryPlanner , winningPlan 
================================================

> db.numbers.ensureIndex({num:1})
{
 "createdCollectionAutomatically" : false,
 "numIndexesBefore" : 1,
 "numIndexesAfter" : 2,
 "ok" : 1
}
num키에 대한 인덱스를 생성한다.

확인은 
> db.numbers.getIndexes()


자세한 내용은 몽고디비인 액션을 참조하세요 저작권은 소중합니다 ^^
 
 
 
 
 
=================================================
 
sudo gem  install mongo
Building native extensions.  This could take a while...
Fetching: mongo-2.2.4.gem (100%)
Successfully installed bson-4.0.4
Successfully installed mongo-2.2.4
2 gems installed
Installing ri documentation for bson-4.0.4...
Installing ri documentation for mongo-2.2.4...
Installing RDoc documentation for bson-4.0.4...
Installing RDoc documentation for mongo-2.2.4...
 =================================================
 
irb -r ./connect.rb 
/home/sharpscar/workspace/ruby/mongodbinaction/connect.rb:4:in `<top (required)>': uninitialized constant Mongo::Connection (NameError)
 
 
=_= ? @con = Mongo::Connection.new 
 
이제 더이상 사용안하는 구문인가?;; 
===================================================
자 이제 트위터 예제를 들어가자(두근두근)
 
sudo gem install twitter!!
 
 
 
Building native extensions.  This could take a while...
ERROR:  Error installing twitter:
 ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb
checking for main() in -lstdc++... no
creating Makefile

make
compiling unf.cc
make: g++: 명령을 찾지 못했음
make: *** [unf.o] 오류 127


Gem files will remain installed in /var/lib/gems/1.9.1/gems/unf_ext-0.0.7.2 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/unf_ext-0.0.7.2/ext/unf_ext/gem_make.out
 

두둥 이게 무슨소리지 명령을 찾지 못했다고?  뭐를 왜 
하면서 검색검색 뭐가문젠지를 모르겠어서 한참을 뒤지다가

g++ 이 설치 안된걸 발견했다 ;;  역시 메시지를  잘 살펴봐야되 
왜 나만 안되는거야 가 아니고 왜 나만 못보는거야? 가 맞는거지 ㅋ
=====================================================
이건 루비와 관련된건데
 같은 폴더 내의 .rb 파일을 require 했는데도 
cannot load such file -- config (LoadError) 로드에러가뜰때엔

 
require "./config" 이런식으로 해주면 된다.
나처럼 초보는 당연히 될줄알았던게 안되면 기겁한다.

댓글 없음: