この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
mongodbにおいてよく利用する基本的な操作について以下に記載致す
DB操作
- DBの選択> use <DB名> もしくはMongoのシェル起動前に$ mongo <DB名>
- DBの一覧取得> show dbs
コレクション操作
- コレクションの一覧取得> show collections
- コレクションの作成> db.createCollection(“<コレクション名>”)
- インデックス
3.1. インデックス確認> db.<コレクション名>.getIndexes() 3.2. インデックス追加> db.<コレクション名>.ensureIndex({ <フィールド名>: <値> }) 値)- 1: 昇順
- -1: 降順
- データ取得
4.1. 書式> db.<コレクション名>.find({検索オプション})
- 結果表示を見やすくなるように調整
db.<コレクション名>.find().pretty() - 制限付加
db.<コレクション名>.find().limit() - 件数
db.<コレクション名>.find().count() - ソート
db.<コレクション名>.find().sort({<フィールド名>: <値>})
値)- 1: 昇順
- -1: 降順
- findの第二引数に表示オプションを指定
db.<コレクション名>.find({}, {<フィールド名>: <値>})
値)- 0: 非表示(0を指定したもののみ消える)
- 1: 表示(_idと、1をしていしたもののみ表示)
- 0と1は混ぜて指定できない
- 検索条件 findの第一引数内に指定
- 文字列 .find({<フィールド名>: “”})
- 正規表現 .find({<フィールド名>: /aaa/})
- 比較 .find({<>: {<比較演算子>: <値>})
- 一致 $eq
- 不一致 $ne
- 以下 $lte
- 以上 $gte
- 大なり $gt
- 小なり $lt 例) db.<コレクション名>.find({hoge:{$lt: 3}})
mongoが起動しない場合の対処方法
ホストOSがクラッシュし, 仮想環境の不正終了が発生した場合などに,
仮想環境再起動後、mongoが正常起動しない現象が発生した場合,
以下のコマンドで対処することが可能である.
(発生環境: CentOS 6)
# cd /var/lib/mongo
# rm -f mongod.lock
# mongod --dbpath=/var/log/mongodb --repair
# service mongod start