1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

mongodbのコマンド、クエリーメモ

Last updated at Posted at 2016-02-23

最近、mongodbを触る機会があったので、使うことが多そうなmongodbのコマンド、クエリーについてまとめました。

###データベース一覧

show dbs

###使うデータベースの選択、データベース作成

use dbname

データベースがなければ作られます。

###データベース削除

db.dropDatabase()

###コレクション一覧

show collections

###コレクションコピー

db.collectionname.copyTo("collectionname2")

###コレクション作成

db.createCollection("collectionname")

###コレクション削除

db.collectionname.drop()

###検索結果表示

db.collectionname.find({}).orderBy({col1: 1}).limit(10).skip(10).toArray()
db.collectionname.find({col1: "aaa", col2: {$ne: "bbb"}, col3: {$lt: 10}}, {col1: true}).sort({col1: 1, col2: -1}).limit(10).skip(10).toArray()

findの2つ目の引数は、表示、非表示にするカラムの指定です。
sortの値は1がasc昇順、-1はdesc降順になります。
skipはMySQL等のoffsetに該当します。

###データ作成

db.collectionname.insert({col1: "aaa", col2: "bbb", col3: "ccc"})

###データ更新

db.collectionname.update({col1: "aaa"}, {$set: {col1: "aaaa", col2: "bbbbb", col4: {a: 1, b: 2} }})

$setつけないとデータが丸ごと指定したものに更新されるので、要注意です。

db.collectionname.update({col1: "aaaa"}, {$unset: {col2: 1, col4.a: 1}})

$unsetで指定する値は影響しません。col4.aのように、入れ子になっている特定の値だけunsetすることもできます。

db.collectionname.update({col1: "aaaa"}, {$unset: {col2: 1, col4.a: 1}, {upsert: false, multi: true}})

updateは、デフォルトではデータ1つしか更新されません。複数のデータを更新したい場合は引数を追加してmulti: trueを指定します。
upsertオプションをtrueにすると、該当データがなければ作成されるようになります。

###データベースダンプ

mongodump --db databasename --out dirname

指定したディレクトリが作成され、その中に データベース名のディレクトリ/各ファイル
という形でjson、bsonファイルが作成されます。

###データベースリストア

mongorestore --db databasename dirname

dirnameは、ダンプしたファイルやファイルの入っているディレクトリ名を指定します。
存在しないDB名を指定すれば、そのDBが作成されます。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?