Edited at

MongoDB メモ

More than 5 years have passed since last update.

▼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
}