タグ

mongodbに関するyuisekiのブックマーク (210)

  • MongoDBを本格利用するために

    MongoDB使ってますか?RavenDBのほうがいいですか?それともCassandraですか?いやいや、NoSQLなんて使わない派ですか?RDBよりも使い勝手のいいところがイロイロあると思うので、積極的につかてみてはどうでしょう。 先日MongoDBSessionStateStoreに手を加えて、高速化してみたわけですが、そもそもMongoDBをどこに構築しておきましょう。自社内サーバー?DC内サーバー?いろいろ悩ましいところだと思いますが、ココは思い切ってAWS EC2に構築するのはどうでしょう。最近AzureでもOpennessでMongoDBが取り上げられてましたね。それもいいですけど、今回はEC2です。 おまたせしました。楽しいMongoDBの時間デス(1/5):企業のIT・経営・ビジネスをつなぐ情報サイト EnterpriseZine (EZ) MongoDBも2になってから

    MongoDBを本格利用するために
  • 元データ分析の会社で働いていた人の四方山話

    ここ2年ほどは、あまり社外の人と交流せず(正確には社内でもプロジェクトで積極的に関わる人以外とはそんなに交流せず)、ひたすらお客さん向けの仕事にフォーカスしてきた。その間に世間のトレンドも大きく変化したような気もするし、特に自分の価値観がかなり変化したような気がする。何気に社会人人生の大半は、いわゆる開発チーム側で、何かを作る側にいたため、いわゆるセールス組織というのにも所属して3年弱のペーペーである。「現場に答えがある」という、新卒で入社した会社の社長の、当時は色々あって完全に受け入れられなかった言葉の意味が身にしみる日々を過ごしてる。 最近はご時世もあいまって、DX(Developer eXperienceではなくDigital Transformationのほう)というキーワードに絡んだお仕事に関わることが多く、思う所が多くなったので一旦メモがてらぶちまけておく。自分が今頭の中にある

    元データ分析の会社で働いていた人の四方山話
  • MongoDBのクライアントツールを使用してデータを操作する

    DebianにMongoDBをインストールして、動作させました。 DebianにMongoDBをインストールする クライアントツールのmongoを使用して、MongoDBの動作を調べてみます。 クライアントツールの起動 MongoDBをインストールしたフォルダのbinにmongoというクライアントツールがあります。 ./mongoとしてやると、クライアントツールが起動します。 起動時のメッセージはこんな感じ。 # ./mongo MongoDB shell version: 1.3.1- url: test connecting to: test Sat Jan 2 20:44:58 connection accepted from 127.0.0.1:40424 #3 type "help" for help

    MongoDBのクライアントツールを使用してデータを操作する
  • MongoDBに一括でデータを登録する(Bulk Inserts)

    CouchDBには、大量のデータを登録する場合用にBulk Insertの機能がありました。 MongoDBで同様の機能を実装する方法を調べたのでメモ。 MongoDBのBulk Insert やり方はいたって簡単で、insertの引数にオブジェクトのリストを 渡してやればOK 以下、サンプルです。 #!/usr/bin/env python # -*- coding:utf-8 -*- from pymongo import Connection from pymongo.objectid import ObjectId #コネクション作成 con = Connection('192.168.1.245', 27017) #コネクションからtestデータベースを取得 db = con.test #testデータベースからfooコレクションを取得 col = db.foo #bulk in

    MongoDBに一括でデータを登録する(Bulk Inserts)
  • MongoDBにインデックスを作成する

    MongoDB郵便番号と住所のデータを登録しました。 MongoDBに一括でデータを登録する(Bulk Inserts) 郵便番号をキーに住所を検索してみます。 住所検索プログラム 郵便番号が0591615のデータを検索して見ます。 #!/usr/bin/env python # -*- coding:utf-8 -*- from pymongo import Connection from pymongo.objectid import ObjectId import time t1 = time.time() #コネクション作成 con = Connection('192.168.1.245', 27017) #コネクションからtestデータベースを取得 db = con.test #testデータベースからyubinコレクションを取得 col = db.yubin for data

    MongoDBにインデックスを作成する
  • MongoDBのHttp Interface

    MongoDBには、Http Interfaceが付属しているようです。 CouchDBと違って、データの更新等は行えないようですが、 ・サーバーのステータス ・登録されているデータの参照 これらが行えるようですので、デバッグに使えると思います。 Http InterfaceのURL URLは、 http://[サーバーIP]:28017/ となります。 ブラウザでアクセスするとこんな感じの画面が表示されます。 コレクションの内容表示 http://[サーバーIP]:28017/[データベース名]/[コレクション名]/ にアクセスすると、該当コレクションに登録されてるデータが表示されます。 ※最後のスラッシュは必須です。 試しにhttp://[サーバーIP]:28017/test/foo/にアクセスすると、こんな感じで 登録されているデータが表示されました。 表示するデータの上限指定 デー

    MongoDBのHttp Interface
  • MongoDBをPythonで操作する(PyMongo使用)

    データの検索サンプル データの取得は、 ・コネクションの作成 ・コネクションからデータベースの取得 ・データベースからコレクションの取得 という手順で、目的のコレクションを取得します。 取得したコレクションに対して検索を実行します。 以下、find_oneとfindのサンプルです。 #!/usr/bin/env python # -*- coding:utf-8 -*- from pymongo import Connection #コネクション作成 con = Connection('192.168.1.245', 27017) #コネクションからtestデータベースを取得 db = con.test # 以下のように記載することも可能 # db = con['test'] #testデータベースからfooコレクションを取得 col = db.foo # 以下のように記載することも可能

    MongoDBをPythonで操作する(PyMongo使用)
  • シェル リファレンス - Docs-Japanese - 10gen Confluence

    DBなしで起動。起動後に、 new Mongo() や connect() で接続することができます。

  • mongo - インタラクティブシェル - Docs-Japanese - 10gen Confluence

    紹介 MongoDBの配布パッケージに含まれている bin/mongo は、MongoDBのインタラクティブシェルです。このユーティリティは、Javascriptのシェルで、コマンドラインからMongoDBのコマンドを発行することができます。(基的に、 SpiderMonkey を拡張したものです。) このシェルは以下のことをするときに便利です。 データベースのコンテンツの調査 クエリーのテスト インデックスの作成 その他の管理系機能 このwikiのサンプルコードでのJavascriptのようなものは、シェル上での実行例です。 それぞれの例の他の各言語での例は driver syntax table を参照してください。 その他の情報 シェル 概要 シェル リファレンス シェル API シェル上でのデータタイプの注意点 数字 デフォルトでは、シェルはすべての数を浮動小数(floating

  • PyMongo 3.9.0 Documentation — PyMongo 3.9.0 documentation

    Overview¶ PyMongo is a Python distribution containing tools for working with MongoDB, and is the recommended way to work with MongoDB from Python. This documentation attempts to explain everything you need to know to use PyMongo. Installing / Upgrading Instructions on how to get the distribution. Tutorial Start here for a quick overview. Examples Examples of how to perform specific tasks. Using Py

  • Database References - MongoDB Manual v7.0

    For many use cases in MongoDB, the denormalized data model where related data is stored within a single document is optimal. However, in some cases, it makes sense to store related information in separate documents, typically in different collections or databases. You can use the $lookup pipeline stage to perform a left outer join to an unsharded collection in the same database. You can also use t

    Database References - MongoDB Manual v7.0
  • Atomicity and Transactions - MongoDB Manual v7.0

    In MongoDB, a write operation is atomic on the level of a single document, even if the operation modifies multiple embedded documents within a single document. Multi-Document Transactions When a single write operation (e.g. db.collection.updateMany()) modifies multiple documents, the modification of each document is atomic, but the operation as a whole is not atomic. When performing multi-document

    Atomicity and Transactions - MongoDB Manual v7.0
  • クエリー - Docs-Japanese - 10gen Confluence

    based on v23 (2010-10-03更新) - オリジナル MongoDBのすばらしいところの一つとして、ダイナミック(ad-hocな)なクエリーのサポートがあります。これはデータを探すのに特別なindedxとかを必要としません。ユーザは、好きな条件で検索することができます。リレーショナルデータベースでは、ダイナミッククエリーは普通のことです。リレーショナルデータベースからMongoDBに移動する場合に、たくさんのSQLクエリーが簡単にMongoDBのドキュメントベースのクエリー言語に変換できます。 クエリ記述オブジェクト MongoDBは、データ取得のために多くの種類の クエリーオブジェクト をサポートしています。クエリーは、BSONドキュメントで表現します。たとえば、MongoDBシェルを使って、 users コレクションに入っているすべてのドキュメントを取得したいとします

  • インデックス - Docs-Japanese - 10gen Confluence

    based on v49 インデックスはクエリーのパフォーマンスを(とても)向上させます。有効なインデックスを定義するためには、アプリケーションが必要とするクエリについてよく知ることが大切です。それさえできていれば、MongoDBでインデックスを作成するのは簡単です。 MongoDBのインデックスは、MySQLのようなRDBMSのインデックスと概念的に似ています。MySQLでインデックスを付けたいような場所に、MongoDBでもインデックスを付けることになるでしょう。 基 インデックスは、コレクションの中のドキュメントの特定のフィールドの値について集めたデータ構造です。このデータ構造はMongoのクエリオプティマイザによって、コレクション内のドキュメントを、素早く検索したりソートするために使われます。正式な言い方で言うと、インデックスは"B-Tree"で実装されています。 シェル 上で、

  • Emerge Technology: Pythonで3分MongoDB

    生まれ変わった「Days of Liris」。プログラミングのこと、Pythonのこと、気になったソフトウェアのこと、身の回りのこと、いろんなこと。など PythonでMongoDBで遊びます。shardingとかGridFSとか、MongoDB自体のお話はまた、きっと後日。 まずは、mongodbのインストール。 $ sudo port mongodb MongoDBを動かします。Cassandraと違って一般ユーザで。 $ mongod  --dbpath data では、PythonでMongoDBを遊ぶためにpymongoをインストール。 $ pip install pymongo さて、準備ができたので早速遊びましょう。MongoDBをインストールしたらmongoというインターラクティブシェルも一緒にインストールされます。これを使って、インターラクティブにmongodbを操作でき

  • インデックス関連コマンド - Docs-Japanese - 10gen Confluence

    Based on v11 (2010-10-08更新) - Original インデックスの作成 ensureIndex() がインデックスの作成のためのヘルパーファンクションです。 system.indexes テーブルにインデックスの情報を加えることで、indexを作成します。 > db.myCollection.ensureIndex(<keypattern>); > // 同じです > db.system.indexes.insert({ name: "name", ns: "namespaceToIndex", key: <keypattern> }); 注意: 一度、インデックスが作成されると、すでにコレクションの中にあるドキュメントと、今後インサートされるドキュメントのすべてがインデックス化されます。もし巨大なコレクションがある場合、これは他の操作を長い間ブロックすることにな

  • MongoDBでUnclean shutdownの際にmongod.lockを消す

    昨日何も考えず、VirtualBox上のUbuntu(ゲスト)でMongoDB動かしたまま、 ホストWindowsをシャットダウンして帰ったわけなんですが、 今朝起動したところ↓のようなエラーが出て起動できませんでした。 # /usr/local/mongodb/bin/mongod --replSet replica --port 27017 --dbpath /data/replica1 --rest --nojournal Wed Jan 25 10:01:36 [initandlisten] MongoDB starting : pid=2131 port=27017 dbpath=/data/replica1 64-bit host=ubnt Wed Jan 25 10:01:36 [initandlisten] db version v2.0.2, pdfile versio

    MongoDBでUnclean shutdownの際にmongod.lockを消す
  • mongodbをdaemontoolsで管理するときの注意点 - hokaccha memo

    サーバー再起動した場合にlockファイルが残ってるので起動できなくなる。 daemontoolsで起動させてるmongodb - 橋詳解 これはちょっとめんどいのでなんかないかなと思って探したら、ジャーナリングを有効にすればよさそう。 MongoDBは強制終了させられた場合はmongod.lockを削除しないと再起動できない。これは例えばdaemontoolsでsvscanが自動再起動しようとしてもこの場合は意味がない。でもjournaling機能をオンにしておけば、recoverの自動実行後に起動してくれる 2011-06-06 05:03:16 via YoruFukurou ジャーナリングについては MongoDBの新機能:ジャーナリングについて詳しく - doryokujin's blog パフォーマンスは下がるけどデータの保全性も高まるし有効でいいかな。

  • ubuntu 上で mongoDB が突然落ちたときの修復方法

    NoSQL の盛り上がりによって、最近は MongoDB が使われる事例も増えてきているように感じます。ですがこの MongoDB、特に負荷がかかっている訳でもないのにある日突然ストンと落ちてしまうことがあります。いきなりあるとさすがに困るので、復旧方法をまとめておきます。 MondoDB の生存確認 まずは、MongoDB が死んでいるか確認してみましょう。コマンドラインから sudo status mongodb を叩いて mongodb stop/waiting が返ってきたら落ちています。 何が困るのか? MongoDB が正常終了されなかった場合、起動した際に作成した lock ファイル(大抵は /var/lib/mongodb/mongod.lock )がそのまま残ります。この lock ファイルは正常終了される時に削除されるはずです。さらに、MongoDB は起動時に loc

  • たいぷらいたーざっき。(2012-01-26)

    _ [Linux][雑記] MongoDBが異常終了したときの修復方法 @Ubuntu ふつうにUbuntuを再起動したはずなのに、MongoDBに怒られてしまいました。 /var/log/mongodb$ sudo tail -f mongodb.log ************** Unclean shutdown detected. Please visit http://dochub.mongodb.org/core/repair for recovery instructions. ************* Thu Jan 26 04:48:17 [initandlisten] exception in initAndListen: 12596 old lock file, terminating ログファイルが示している http://dochub.mongodb.org/c