source

Mongodb:사용하기 전에 알아야 할 사항

manysource 2023. 3. 26. 11:37

Mongodb:사용하기 전에 알아야 할 사항

Ruby on Rails를 사용하여 취미(수익이 없는) 프로젝트를 시작합니다.Postgresql을 사용하여 Rails를 상당히 개발했는데 정규화된 스키마를 상당히 잘 모방할 수 있습니다.하지만 몽로그룹은 반짝반짝 빛나고 새로워 보인다.취미 프로젝트보다 새로운 것을 시도하는 데 더 좋은 것이 있을까요?

Mongodb를 사용하기 시작했을 때를 생각해 보세요.어떤 기술을 나중에 배워서 "시작할 때 알았으면 좋았을 텐데!"라고 말할 수 있었을까?처음부터 사용할 수 있는 플러그인은 무엇입니까?어떤 참조를 즐겨찾기에 추가하시겠습니까?

MongoDB를 Rails와 함께 사용한다면 MongoMapper의 추천에 전적으로 찬성합니다.단, 몇 개의 블로그 투고 이외의 문서는 없습니다.소스코드를 조사하여 어떻게 동작하는지가 마음에 들지 않는 경우는, 아직 대응하고 있지 않을 가능성이 있습니다.

레일즈 외근이라면 MongoMapper에서 멀리 떨어져 있는 것을 추천합니다.MongoDB는 SQL 기반 ORM에서 기대하는 것과 비슷한 기능을 하기 때문에 MongoDB의 위력과 그 이면에 있는 다양한 생각을 제대로 이해할 수 없습니다.하위 레벨의 루비 드라이버나 Javascript 콘솔에서도 잠시 플레이할 수 있습니다.

특히 스키마를 정규화하는 방법을 알고 있다고 하셨기 때문에 MongoDB를 데이터베이스로 생각하지 않는 것이 좋습니다.MongoDB에서 데이터를 구성하는 방법은 관계형 데이터베이스와 매우 다릅니다.루비 해시를 보관하고 회수하는 장소로 생각해 보세요.MongoDB를 사용하여 관계형 작업을 수행할 수 있지만 NoSQL에 대해 고민할 때는 자급 문서만 사용하는 것이 좋습니다.

어떤 링크를 참조해야 하는지, MongoDB 사이트에서 볼 수 있는 모든 것을 읽어보는 것을 강력히 추천합니다.그들의 서류는 매우 좋다.특히 고급 쿼리, 멀티키 인덱스 및 MapReduce를 살펴보고 NoSQL 데이터베이스의 고유한 장점과 강점에 대한 아이디어를 얻으십시오.

나는 너와 거의 같은 단계에 있다.MongoDB로 새로운 프로젝트를 시작합니다.저는 약 7주 경력의 사람입니다.이것은 내가 매우 유용하다고 생각한 것이다.

Mongomapper 대신 Mongoid 사용

http://mongoid.org/

문서가 훌륭합니다.진짜로, 훌륭해.모든 문서를 읽는 데 약 15분이 소요되며, Mongoid로 무엇을 할 수 있는지, 무엇을 할 수 없는지 매우 정확하게 알 수 있습니다.

내일 새로운 메이저 버전의 몽고이드가 출시될 예정입니다.그것은 많은 유용한 것들을 가져올 것이다.

레일 3을 사용하고 있습니다.개발 버전을 설치하려면 이를 gem 파일에 추가합니다.

보석 'mongoid', "~> 2.0.0.199"

현재 베타는 20이지만, 말씀드렸다시피 내일 출시 후보가 있습니다.

또한 구글 그룹에도 가입할 것을 제안합니다.교통량이 적고 사람들은 어떤 질문에도 기꺼이 대답합니다.예를 들어, 저는 그들에게 저의 첫 DB Model 디자인을 보여주었고 그들은 그것을 개선할 수 있는 많은 방법을 제시했습니다.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'

기계공과 함께 위조를 사용할 수 있습니다.믹스 대박이다.

https://github.com/sevenwire/forgery

또 하나 하고 싶은 말이 있어요.저는 관계 데이터베이스 세계에서 왔습니다.처음에는 이상하게 들렸습니다.mongo 데이터베이스에 파일을 저장할 수 있습니다.

실제로 예전처럼 관리하는 것보다 더 빠를 수 있습니다.이것은 샤딩에 대한 몽고의 지원 때문이다.샤딩은 시스템 클러스터를 사용하여 Mongo 데이터베이스를 제공할 수 있음을 의미합니다.이음매가 없습니다.마스터 슬레이브따라서 많은 컴퓨터에서 파일을 서비스할 수 있으며, 각 컴퓨터에서 파일을 보낼 수 있습니다.확장이 매우 잘 됩니다. :)

이것은 GridFS를 사용하여 이루어집니다.http://www.mongodb.org/display/DOCS/GridFS

Mongoid는 마스터 슬레이브 설정을 지원합니다.

더 필요한 정보가 있으면 물어보세요.

편집:

기타 : http://railscasts.com/episodes/238-mongoid

1. 대소문자를 구분하지 않는 쿼리

이큐

"_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'];

또한 _id는 컬렉션별로만 고유하며 다른 서버에서는 다를 수 있습니다.

4. MongoDB는 LIMIT, OFFSET, ORDER를 지원합니다.

일부 고급 정렬의 경우 Aggregation Framework를 사용할 수 있습니다.

5. SQL의 경우 MongoDB의 SQL 주입은 어레이 주입입니다.

따라서 데이터를 쓸 때는 (string )을 사용하거나 is_array를 체크합니다.

$req = (string) $range['name'];

6. HDD DOS

기본 POST 크기는 PHP에서는 8MB이고, Mongo에서는 문서당 16MB 제한이 있습니다.예를 들어 분석 스크립트에서 일부 사용자가 eq USER_AGENT STRING을 스푸핑한 후 1회 삽입당 16MB를 전송한다고 가정합니다.

7. 과거 MongoDb에 몇 가지 문제가 있었지만, 현재 3.0은 꽤 훌륭하고 안정적입니다.

에서의 MongoDb 팟캐스트의 훌륭한 초보자/소개를 소개합니다.NET Rocks -

http://www.dotnetrocks.com/default.aspx?ShowNum=507

마이크 디롤프가 인터뷰...그는 MongoDb 프로젝트에서 일한다.아, 그리고 음질이 아주 좋아요.

Mike Dirolf는 MongoDB 프로젝트에서 일하는 10gen의 소프트웨어 엔지니어입니다.그는 주로 Python과 Ruby의 클라이언트 드라이버를 다루지만, EuroPython, Strange Loop Conf, RubyEnRails, RuPy 및 RubyConf, 뉴욕시, 런던, 워싱턴 DC 및 샌프란시스코의 Meetup 그룹에서도 MongoDB에 대해 이야기합니다.

반드시 Junemaker mongo-mapper에 대해 알아보시기 바랍니다.http://github.com/jnunemaker/mongomapper 하지만 후드 아래에서 mongo-mapper가 어떻게 작동하는지 보기 위해 순수 Ruby Mongo 드라이버를 사용해 보시기 바랍니다.루비를 사용하여 Mongo 데이터베이스에 데이터를 넣는 것은 그다지 어렵지 않습니다.

루비 몽고 튜토리얼은 이미 찾으셨겠죠?그렇지 않은 경우를 대비해서 다음 링크를 클릭해 주세요.http://www.mongodb.org/display/DOCS/Ruby+Tutorial

언급URL : https://stackoverflow.com/questions/2124274/mongodb-what-to-know-before-using