LoginSignup
47
44

More than 3 years have passed since last update.

Macでmongodbを使う最低限のメモ

Last updated at Posted at 2017-08-20

インストール

何でも楽したいタイプなのでbrewで。

brew tap mongodb/brew
brew install mongodb-community

起動と終了

手動起動もできますが、楽したいので自動で起動させておきます。

brew services start mongodb-community

なお、自動起動させた場合のデータパスは/usr/local/var/mongodbに設定されるようです。

起動しているかの確認は、

brew services list

停止は

brew services stop mongodb-community

概念

mongodbはいわゆるドキュメントDBと呼ばれる部類のデータベースなですが、登場する用語はおおよそRDBと下記のように対応しています。
とは言え、スキーマレスなので、カラムを設定するような行為はありません。

RDB mongo
database database
table collection
row document

基本操作

コンソールの起動

mongo

>

コンソールを抜けるのはexitとします。

各種確認

とりあえずdbを確認。初期でlocalというdbが存在しています。

show dbs;

database作成

明示的に作成しなくてもdb usernameとすることで、dbが作成されます(但し、実際に作成されるのはcollection作成時)。

use mydb;
db.createCollection("members");

コレクションができたかどうかはshow collectionsで確認できます。

なお、collectionは明示的に作成しなくてもinsert時に自動生成することができます。

show collections;

databaseの削除

削除対象のdbをuseしている状態でdropします。

db.dropDatabase();

自分がどこにいるかはdb.stats()で確認できます。

db.stats();

挿入

挿入します。同じ構造である必要がありません。
collectionを事前に作っていなくても、自動生成されます。

db.members.insert({name: "hoge",age: 30});
db.members.insert({name: "foo",age: 40});

全件検索

とりあえず全件検索。

db.members.find();

条件検索

完全一致

db.members.find({name: "hoge"});

正規表現

いわゆるlike的な検索は正規表現で。

db.members.find({name: /ho/});

AND 検索

ANDは,で繋げます。

db.members.find({name:/ho/,age:{$gt:20}});

OR 検索

ORは少々めんどい。

db.members.find({$or: [{name:/h/},{age:{$gt:20}}]});

同じカラムの複数条件はINを使う。

distinct

いちおうDISTINCTも。

db.members.distinct("name");

あるKeyが存在するか

あるKeyが存在するかどうかで検索。

db.members.find({age: {$exists: true}});

削除

全件削除

とりあえず全件削除。

db.members.remove({});
47
44
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
47
44