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