Mongodb : 사용하기 전에 알아야 할 사항은 무엇입니까? [닫은]
Ruby on Rails를 사용하여 취미 (비수익) 프로젝트를 시작하고 있습니다. Postgresql을 사용하여 Rails에서 상당한 양의 개발을 수행했으며 정규화 된 스키마를 꽤 잘 모방 할 수 있습니다. 그러나 Mongrodb는 반짝이고 새 것처럼 보입니다. 취미 프로젝트보다 새로운 것을 시도하는 것이 더 낫습니까?
Mongodb를 사용하기 시작한 때를 회상하십시오. 나중에 "내가 시작할 때 알았 더라면!"라고 말하게 만든 기술은 무엇입니까? 당신 만이 알고 있었다면 처음부터 바로 사용했을 것이라는 것을 발견 한 플러그인은 무엇입니까? 어떤 참조를 북마크하고 싶습니까?
Rails와 함께 MongoDB를 사용하려는 경우 MongoMapper의 추천을 두 번째로 할 것입니다. 그러나 지금까지 몇 개의 블로그 게시물 외에는 문서가 없다는 것을 경고합니다. 작동 방식을 확인하기 위해 소스 코드를 파헤치는 것이 편하지 않다면 아직은 그렇지 않을 것입니다.
Rails 외부에서 작업하는 경우 MongoMapper에서 멀리 떨어져있는 것이 좋습니다. MongoDB를 SQL 지원 ORM에서 기대하는 것과 비슷한 것으로 작동하기 때문에 MongoDB의 힘과 다른 생각에 대한 좋은 아이디어를 제공하지 않습니다. 낮은 수준의 루비 드라이버와 자바 스크립트 콘솔에서도 시간을 보내십시오.
특히 스키마를 정규화하는 방법을 알고 있다고 언급 했으므로 지금은 MongoDB를 데이터베이스로 생각 하지 않는 것이 좋습니다 . MongoDB에서 데이터를 구성하는 방법은 관계형 데이터베이스와 매우 다릅니다. Ruby 해시를 저장하고 검색하는 장소로 생각하십시오. MongoDB로 몇 가지 관계형 작업을 수행 할 수 있지만 NoSQL을 둘러 보는 동안 자체 포함 문서 만 사용하는 것이 좋습니다.
어떤 링크를보아야하는지에 관해서는 MongoDB 사이트에서 할 수있는 모든 것을 읽는 것이 좋습니다. 그들의 문서는 매우 좋습니다. 특히 고급 쿼리 , 다중 키 인덱스 및 MapReduce 를 살펴보면 NoSQL 데이터베이스의 고유 한 장점과 강점에 대한 아이디어를 얻을 수 있습니다.
나는 당신과 거의 같은 단계에 있습니다. MongoDB로 새 프로젝트 시작. 저는 약 7 주간의 경험입니다. 이것은 내가 매우 유용하다고 생각한 것입니다.
Mongomapper 대신 Mongoid 사용
문서는 훌륭합니다. 정말 훌륭합니다. 모든 문서를 읽는 데 약 15 분이 소요되며 Mongoid로 할 수있는 작업과 할 수없는 작업에 대한 정확한 아이디어를 얻을 수 있습니다.
내일 mongoid의 새로운 주요 버전의 출시 후보가 출시 될 예정입니다. 많은 유용한 것들을 가져올 것입니다.
Rails 3을 사용하고 있습니다. 개발 버전을 설치하려면 gem 파일에 다음을 추가하세요.
gem 'mongoid', "~> 2.0.0.beta"
현재 베타는 20이지만 내가 말했듯이 내일 출시 후보가 있습니다.
또한 Google 그룹에 가입하라고 권유합니다. 트래픽이 적고 사람들은 어떤 질문에도 기꺼이 대답합니다. 예를 들어 첫 번째 DB 모델 설계를 보여 주었고이를 개선 할 수있는 여러 방법을 제공했습니다. Mongoid의 제작자도 여러분의 질문에 답합니다.
두 단어로 말하자면 훌륭한 커뮤니티입니다.
Mongo에서 Machinist를 사용할 수있게 해주는이 플러그인이 있습니다.
https://github.com/nmerouze/machinist_mongo
꽤 잘 작동합니다.
gem 'machinist_mongo', :require => 'machinist/mongoid',
:git => 'http://github.com/nmerouze/machinist_mongo.git',
:branch => 'machinist2'
Machinist와 함께 Forgery를 사용할 수 있습니다. 멋진 믹스.
https://github.com/sevenwire/forgery
내가 말하고 싶은 또 다른 것. 저는 관계 데이터베이스 세계에서 왔기 때문에 처음에는 정말 이상하게 들렸습니다. 몽고 데이터베이스에 파일을 저장할 수 있습니다.
사실, 예전처럼 관리하는 것보다 더 빠를 수 있습니다. 이는 mongo의 샤딩 지원 때문입니다. 샤딩은 Mongo 데이터베이스를 제공하기 위해 컴퓨터 클러스터를 사용할 수 있음을 의미합니다. 원활합니다. 주인 노예. 따라서 각각의 일부를 보내는 여러 컴퓨터에서 파일을 제공 할 수 있습니다. 그것은 아주 잘 확장됩니다 :)
이것은 GridFS를 사용하여 수행됩니다. http://www.mongodb.org/display/DOCS/GridFS
Mongoid는 해당 마스터-슬레이브 구성을 지원합니다.
더 많은 정보가 필요한지 물어보세요.
편집하다:
또한 : http://railscasts.com/episodes/238-mongoid
1. 대소 문자를 구분하지 않는 쿼리
eq
"_id": "1da259c70fe3392c3b000002",
"name": "Dany"
array('name' => 'dany') :: results 0
array('name' => 'Dany') :: results 1
2. 마지막 삽입 ID :
$coll->insert($user, true);
echo (string) $user['_id'];
3. _id는 MongoId 객체입니다.
ID로 찾기 :
$p->findOne(array('_id' => new MongoId( $UID )), array('proj'));
_id 표시 :
$coll['_id'] = ( string ) $coll['_id'];
Also _id is only unique per collection, can be different on other server
4. MongoDB has support for LIMIT,OFFSET,ORDER
for some advance sorting you can use Aggregation Framework.
5. In SQL is Sql injection in MongoDB is Array injection
So when write some data use ( string ) or check is_array
$req = (string) $range['name'];
6. HDD DOS
default _POST size is 8MB in PHP, IN Mongo there are limit per document 16MB. So imagine Some user spoof eq USER_AGENT STRING in you analytic script and then send 16MB per single insert.
7. There was some problems in past with MongoDb but right now 3.0 is pretty awesome and stable.
Here is a great beginner/introduction to MongoDb podcast from .NET Rocks -
http://www.dotnetrocks.com/default.aspx?ShowNum=507
Mike Dirolf is intereviewed... he works on the MongoDb project. Oh, and the sound quality is excellent.
Mike Dirolf is a Software Engineer at 10gen, where he works on the MongoDB project. He mainly works on client drivers for Python and Ruby, but also takes time out to talk about MongoDB - he has presented at EuroPython, Strange Loop Conf, RubyEnRails, RuPy and RubyConf as well as at meetup groups in New York City, London, Washington D.C. and San Francisco.
You should definitively take a look into junemakers mongo-mapper: http://github.com/jnunemaker/mongomapper But I also recommend you to play a little bit with the pure Ruby Mongo driver to see how mongo-mapper works under the hood. It isn't very hard to put some data into a Mongo database using Ruby.
I guess you already found the Ruby Mongo Tutorial. Just in case you didn't, here is the link: http://www.mongodb.org/display/DOCS/Ruby+Tutorial
참고URL : https://stackoverflow.com/questions/2124274/mongodb-what-to-know-before-using
'Programing' 카테고리의 다른 글
AND 및 OR 연산자를 사용하여 속성별로 jQuery 선택 (0) | 2020.09.03 |
---|---|
함수 매개 변수 목록 내의 중괄호는 es6에서 무엇을합니까? (0) | 2020.09.02 |
추상 필드가 아닌 이유는 무엇입니까? (0) | 2020.09.02 |
SIGINT는 SIGTERM, SIGQUIT 및 SIGKILL과 같은 다른 종료 신호와 어떤 관련이 있습니까? (0) | 2020.09.02 |
std :: initializer_list가 기본 제공 언어가 아닌 이유는 무엇입니까? (0) | 2020.09.02 |