sql >> データベース >  >> NoSQL >> MongoDB

検索時にMongoDBデータを変換する

    mongodbを使用すると、サーバー側でほぼすべてのことを実行できます。通常「いいえ」と聞こえる理由は、通常の状況では意味をなさないように速度を犠牲にしすぎるためです。 PyMongoの背後にある主要な力の1つである10genのMikeDirolfは、サーバー側のjavascriptをpymongoで使用することについての優れたブログ投稿をここに持っています: http://dirolf.com/2010/04/05/stored-javascript-in-mongodb-and-pymongo.html 。彼の例は、2つのフィールドの合計を返すjavascript関数を格納するためのものです。ただし、ユーザー名フィールドの最初の文字を返すように簡単に変更できます。要点は次のようになります:

    db.system_js.first_letter = "function (x) { return x.charAt(0); }"
    

    ただし、最初に理解しておくと、mongodbはデータの取得に非常に優れており、データの処理にはあまり優れていません。推奨事項(たとえば、OreillyによるKristina Chodorowのmongodb開発者向けの50のヒントとコツを参照)は、Andrewが上記で簡潔にほのめかしたことを実行することです。最初の文字の列を作成し、代わりにそれを返します。アプリケーションでは、あらゆる処理をより効率的に行うことができます。

    ただし、「ビュー」からfullname [0]を返す前にフルネームをクエリするだけでもセキュリティ上のリスクが大きすぎると思われる場合は、すべてを可能な限り最速で行う必要はありません。速度に関する一般の懸念から、しばらくの間、mongodbでのmap-reduceは避けていました。次に、最初のマップリデュースを実行し、80,000の10kドキュメントを処理するときに親指を0.1秒間いじりました。私は物事の計画の中で、それは小さいことに気づきます。しかし、それは、大規模なWebサイトがサーバー側の処理でパフォーマンスを低下させるのは悪いことであるからといって、それがあなたにとって重要であるという意味ではないことを示しています。私の場合、Hadoopに移行するのに、時々その.1秒を食べるよりも少し時間がかかると思います。あなたのサイトで頑張ってください



    1. 水平方向にスケーリングされた分散システム向けの、Pub/SubでのRedisクラスターとZeroMQ

    2. Springデータredisはデフォルトのシリアライザーをオーバーライドします

    3. ClusterControl1.4のMongoDB機能

    4. Laravelアプリはxamppまたはライブサーバーでは実行されていませんが、php職人サーブではうまく機能します