mongodb
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| mongodb [2016/08/20 09:06] – nullpon | mongodb [2020/02/26 02:55] (現在) – [リレーショナルDBとの差異] nullpon | ||
|---|---|---|---|
| 行 12: | 行 12: | ||
| |トランザクション|あり|なし| | |トランザクション|あり|なし| | ||
| - | MongoDBのドキュメントはBSON(Binary JSON)形式で保存される。JSONで定義されているデータ(オブジェクト・配列・文字列・数値・真偽値・null)と日付(ISODate)を保存できる。トランザクションは存在しないがドキュメント単位でアトミックな操作が保証されている。 | + | MongoDBのドキュメントはBSON(Binary JSON)形式で保存される。JSONで定義されているデータ(オブジェクト・配列・文字列・数値・真偽値・null)と日付(ISODate)、バイナリを保存できる。 |
| + | トランザクションは存在しないがドキュメント単位でアトミックな操作が保証されている。ロックもドキュメント単位で行われる(mongoDB 3.0以降のwiredTigerエンジン使用時) | ||
| ===== インストール ===== | ===== インストール ===== | ||
| MacOSX | MacOSX | ||
| 行 23: | 行 24: | ||
| $ sudo port load mongodb | $ sudo port load mongodb | ||
| | | ||
| + | |||
| ===== 起動 ===== | ===== 起動 ===== | ||
| 自身の権限で起動してみる | 自身の権限で起動してみる | ||
| 行 30: | 行 32: | ||
| dbpathはデータ保存場所、自身の権限で起動するので自分のホームディレクトリ以下のなど書き込み可能な適当な場所を指定する。dbpathのデフォルトは /data/db 。保存場所が存在しない場合や、読み書き権限が無い場合は起動に失敗するので予め作成しておく。デフォルトでPort 27017を使用する。 | dbpathはデータ保存場所、自身の権限で起動するので自分のホームディレクトリ以下のなど書き込み可能な適当な場所を指定する。dbpathのデフォルトは /data/db 。保存場所が存在しない場合や、読み書き権限が無い場合は起動に失敗するので予め作成しておく。デフォルトでPort 27017を使用する。 | ||
| + | Linuxでは、 **xfs でフォーマットされたディスク上のディレクトリ**を dbpath とする事。特に3系(WiredTiger)では必須、ext4ではパフォーマンスと安定性がかなり損なわれるため production環境では特に注意してください。ext4でサービスインしてひどい目にあっている話もちらほら聞きます。 | ||
| ===== インタラクティブシェル ===== | ===== インタラクティブシェル ===== | ||
| 行 232: | 行 235: | ||
| </ | </ | ||
| + | ==== cannot use the part (hoge of hoge.fuga) to traverse the element ({hoge: 1.0}) ==== | ||
| + | |||
| + | オブジェクトではない値に対して、オブジェクトとしてアクセスしようとした | ||
| + | |||
| + | <code javascript> | ||
| + | mongos> db.Test.find({_id: | ||
| + | { " | ||
| + | mongos> db.Test.update({_id: | ||
| + | WriteResult({ | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | }) | ||
| + | </ | ||
| + | |||
| + | hogeオブジェクトのfugaプロパティを更新する操作を行ったが、hogeはオブジェクトではないためエラー | ||
mongodb.1471683965.txt.gz · 最終更新: by nullpon