LoginSignup
10
9

More than 5 years have passed since last update.

MongoDB メモ

Last updated at Posted at 2013-04-19

▼MongoDBのインストール

$ brew install mongodb

手動で起動

$ mongod &

▼mongooseをインストール

$ npm install mongoose

手動で起動

$ mongo

▼マニュアル
http://docs.mongodb.org/manual/

▼参考
MongoDBの基本 node.jsでMongoDBを扱ってみる - エウレカ技術部
http://d.hatena.ne.jp/eureka_tech/20110712/1310472120

$ mongo #起動
MongoDB shell version: 1.6.3
connecting to: test

MongoDB はデータベースもコレクションも存在しなければ自動作成してくれる

> db = connect("localhost/test") #  使うデータベースをtestに指定

▼DBに挿入

> db.users.save({username:"mizchi",password:"password",params:["A","B"]});  #usersのコレクション挿入してみる
> db.users.save({username:"koni",password:"konisimple",params:["B","C"]} ) #もうひとつ挿入

▼総数をみて確認

> db.users.find().count() # 中身が挿入されたか、総数をみて確認
2

▼空のクエリで検索(全部とってくる)

> db.users.find() # 空のクエリで検索(全部とってくる場合)
{ "_id" : ObjectId("4e077d13984bb3412af1a0d1"), "username" : "mizchi", "password" : "password", "params" : [ "A", "B" ] }
{ "_id" : ObjectId("4e077deb984bb3412af1a0d2"), "username" : "koni", "password" : "konisimple", "params" : [ "B", "C" ] }

▼クエリで条件指定して検索

> db.users.find({username:"koni"})  # クエリで条件指定して検索 username == "koni"のものq   
{ "_id" : ObjectId("4e077deb984bb3412af1a0d2"), "username" : "koni", "password" : "konisimple", "params" : [ "B", "C" ] }

▼条件に合致したものを削除

> db.users.remove( { username : "mizchi" } )

▼空にする

> db.users.drop() # 空にする
true
> db.users.find().count() # 総数をみて確認
0

▼データベースの一覧を表示

> show dbs

▼使用中のDB名を表示

> db

▼使用するDB名を指定

> use mydb

▼ 現在のデータベースに存在するコレクションを確認

> show collections
system.indexes
users

▼データを取得>データを追加>保存>確認

> var mongo = db.things.findOne({name:"mongo"});  # データを取得
> print(tojson(mongo)); # 出力
{"_id" : "497dab624ee47b3a675d2d9c" , "name" : "mongo"} 
> mongo.type = "database";  # データ追加
database 
> db.things.save(mongo); # 保存
> db.things.findOne({name:"mongo"}); # 確認
{"_id" : "497dab624ee47b3a675d2d9c" , "name" : "mongo" , "type" : "database"} 

参考
Mongoでのデータ更新 - Docs-Japanese - 10gen Confluence
https://wiki.10gen.com/pages/viewpage.action?pageId=18907286

〜うまく動かすMongoDB〜仕組みや挙動を理解する - doryokujin's blog
http://doryokujin.hatenablog.jp/entry/20110519/1305737343

▼DBのステータスを確認

> db.stats()
{
    "db" : "test",
    "collections" : 4,
    "objects" : 11,
    "avgObjSize" : 53.81818181818182,
    "dataSize" : 592,
    "storageSize" : 20480,
    "numExtents" : 4,
    "indexes" : 2,
    "indexSize" : 16352,
    "fileSize" : 201326592,
    "nsSizeMB" : 16,
    "ok" : 1
}

▼メモリーリークが起こってないか確認

> db.serverStatus().mem
{
    "bits" : 64,
    "resident" : 61,
    "virtual" : 2802,
    "supported" : true,
    "mapped" : 160,
    "mappedWithJournal" : 320
}
10
9
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
10
9