레이블이 몽고디비인 게시물을 표시합니다. 모든 게시물 표시
레이블이 몽고디비인 게시물을 표시합니다. 모든 게시물 표시

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" 이런식으로 해주면 된다.
나처럼 초보는 당연히 될줄알았던게 안되면 기겁한다.