본문 바로가기

IT/Database

[mongodb] aggregation ### url 별 카운트 집계 db.mycollection.aggregate([{"$group" : {_id:"$url", count:{$sum:1}}},{$sort:{"count" : -1}}]) 더보기
[MongoDB] php 7.X 에서 접근 방법 ### PHP 7.X 에서 mongodb 연결하는 방법이 바뀌었네요. $filter = ['uid' => $uid];$options = [ 'projection' => ['_id' => 0],];$mongo = new MongoDB\Driver\Manager('mongodb://xxx.xxx.xxx.xxx:xxxx');$query = new MongoDB\Driver\Query($filter, $options);$rows = $mongo->executeQuery('DB.COLLECTION', $query); // $mongo contains the connection object to MongoDB foreach($rows as $r){ $result = $r;} 상세한건http://php.net/man.. 더보기
[MongoDB] 전체 필드 이름 얻기 전체 필드 이름 얻기, 전체 필드 이름 찾기 mr = db.runCommand({ "mapreduce" : "userlog_table", "map" : function() { for (var key in this) { emit(key, null); } }, "reduce" : function(key, stuff) { return null; }, "out": "userlog_table" + "_keys"}) db[mr.result].distinct("_id") 출처: http://eunsood.tistory.com/ 더보기
[MongoDB] 로그 파일 갱신 logRotatae use admin db.runCommand( { logRotate : 1 } ) 더보기
[mongodb] download command mongodb 다운로드 커맨드에서 하기 ( 맨 뒤에 버전 ) curl -O http://downloads.mongodb.org/linux/mongodb-linux-x86_64-2.6.3.tgz 더보기
[mongodb] 복합 index name과 age 필드에 복합 인덱스를 걸었다고 가정하자.. db.users.ensureIndex({name:1, age:1}, {name:"idx_name_age_compound"}) 지금까지는 이렇게 걸고나서 name에 대한 index도 따로 걸어줬었는데 알고보니 위와같이 걸면 앞에 쓴 필드인 name에 대해서는 따로 걸 필요가 없었다... 실제 explain으로 쿼리해보니... db.users.find({name:"kkyun"}).explain() 위에서 설정한 index를 사용하더라.... 그리고 다른 필드를 섞어서 사용해도... db.users.find({name:"kkyun", age:29}).explain() 위의 인덱스를 사용하더라~~~ 데이터 양이 많아지면 인덱의 용량이 상당히 부담스러워.. 더보기
[mysql] 테이블 생성, 컬럼 수정, 삭제, 추가 /* 테이블 생성 */ create table [테이블명](id int,name varchar(20)); /* 컬럼 추가 */ alter table [테이블명] add [컬럼명] [타입] [옵션]; ex) alter table [테이블명] add [컬럼명] varchar(100) not null default '0'; /* 컬럼 삭제 */ alter table [테이블명] drop [컬럼명]; /* 컬럼명 변경 및 타입 변경 */ alter table [테이블명] change [컬럼명] [변경할컬럼명] varchar(12); /* 컬럼 타입 수정 */ alter table [테이블명] modify [컬럼명] varchar(14); /* 테이블명 수정 */ alter table [테이블명] rename [.. 더보기
[mysql] index 관련 명령어 CREATE INDEX [INDEX명] ON [TABLE명]([COLUMN_NAME]); UNIQUE INDEX 생성CREATE UNIQUE INDEX [INDEX명] ON [TABLE명]([COLUMN_NAME]); TABLE에 추가ALTER TABLE [TABLE명] ADD INDEX [INDEX명]([COLUMN_NAME]); UNIQUE INDEX 추가ALTER TABLE [TABLE명] ADD UNIQUE([COLUMN_NAME]); PRIMARY KEY 추가ALTER TABLE [TABLE명] ADD PRIMARY KEY([COLUMN_NAME]); 삭제ALTER TABLE [TABLE명] DROP INDEX [INDEX명];DROP INDEX [INDEX명] ON [TABLE명]; Hint .. 더보기
[mongodb] 정말정말 유용한 slide http://www.slideshare.net/lqez/the-mongodb-strikes-back-mongodb 더보기
[mongodb] findAndModify findAndModify query (upsert) db.users.findAndModify({ query:{name:"kkhyun"}, update:{$set:{age:20,gift:"computer"}}, upsert:true }) db.runCommand( { findAndModify:"users", query:{name:"kkhyun"}, update:{$set:{age:20}}, upsert:true } ) 적용해보니 command상, api상으로 정상 동작하는 것을 확인하였다. update와의 다른점은 atamic한 특성으로, 각 명령마다 lock을 가져다 쓴다는 점이다. 이때문인지 findAndModify가 update보다 조금 느리다는 글이 있었는데 실제로 적용해보니 차이는 거의 느껴지지는.. 더보기