mongodb

Mongooseのバージョニング

Mongooseは3からバージョニングという機能が入ったんだけどよくわかってなかったので調べたメモ。詳しくはここに書いてある。 http://aaronheckmann.tumblr.com/post/48943525537/mongoose-v3-part-1-versioningバージョニングを使うと何がいいかというと、…

mongo shellでpretty print

db.foo.find().pretty()でできた。

mongodbでdatabaseの削除

mongo shellで > use dbname > db.dropDatabase()ドキュメントここ。 http://www.mongodb.org/display/DOCS/dbshell+Reference

homebrewで入れたmongodbの自動起動設定

plistあらかじめ用意されてるのでコピペするだけ。さすがhomebrew。 $ cp /usr/local/Cellar/mongodb/1.6.3-x86_64/org.mongodb.mongod.plist ~/Library/LaunchAgents $ launchctl load -w ~/Library/LaunchAgents/org.mongodb.mongod.plist

mongodbをdaemontoolsで管理するときの注意点

サーバー再起動した場合にlockファイルが残ってるので起動できなくなる。 daemontoolsで起動させてるmongodb - 橋本詳解 これはちょっとめんどいのでなんかないかなと思って探したら、ジャーナリングを有効にすればよさそう。 MongoDBは強制終了させられた場…

ubuntuでnginxとmongodbの自動起動をとめる

Ubuntuに最新版のMongoDBをインストールする - hokaccha.hamalog v2 Ubuntuに最新版のnginxをインストールする - hokaccha.hamalog v2 この辺の方法でインストールするのは簡単でいいんだけど、upstartとかinit.d的なのももれなくついてくる。自動起動は便利…

mongooseのSchema.Types.Mixed

というのをSchemaのtypeに指定するとどんな型でも入れられるようになる。 var mongoose = require('mongoose') , Schema = mongoose.Schema; var FooSchema = new Schema({ bar: Schema.Types.Mixed });

mongooseでリレーション

embededじゃなくて正規化してリレーションしたい場合。これでいいのかわからんけど。mongoose.Schema.ObjectIdというのがSchemaの指定に使えるっぽいので var mongoose = require('mongoose') , Schema = mongoose.Schema , ObjectId = Schema.ObjectId; var…

MongoDB勉強会メモ

気になったとこだけ。後で詳しく調べたいやつとかは単語だけ。 Mongoid::Versioning(Ruby)でバージョン管理みたいのできる explain()でexplainできる explainでindex使ってるかどうかを確認して重いクエリを潰す フェイルオーバーは3台以上必要 slowmsオプ…

MongoDBのOplog

なんかMongoDBのログの設定いじってたらOplogっていう設定項目があってなんぞと思って調べた。ここに詳しくのってる。 MongoDB Oplog入門レプリケーションの同期とかに使うやつらしい。

mongodbのバックアップをとって過去30日間分保存する

バックアップをとる簡単なシェルスクリプトのメモ。mongodbのdatabaseのデータをdumpしてtar.gzにして30日以上前のは消す。 #!/bin/sh DB_NAME=$1 if [ -z $DB_NAME ]; then echo 'require database name' exit fi BACKUP_BASE_DIR=/backup/db BACKUP_DIR=$B…

sakura VPSのUbuntuを64bitにした

最初32bitにしてたけど64bitにした。理由はMongoDBが32bitだと容量2GB制限があるから。 心配してたのはメモリ使用量で、メモリ1GBしかないVPSだから32bitのほうがメモリにやさしくていいかなーと思って、32bitにしたけど、nginx+node.js+mongodbとかで色々ベ…

mongodbで認証とかIP制限とか

設定ファイルに auth = true書いとくか、起動オプションで --auth つける。管理ユーザーの追加は、ユーザーはmongoシェルで use admin db.addUser('user', 'passwd')ってする。これだけだと管理者のユーザー登録だけでDBのユーザーは別途設定が必要。 use my…

mongooseのmodelつくるところではまった

このコードはエラる。mongooseのバージョンは1.6.0。 var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/mydb', function() { var UserSchema = new mongoose.Schema({ name: { type: String, unique: true } }); mongoose.model(…

mongooseでuniqueにしたフィールドを変更するときに注意すること

uniqueなフィールドの名前変更したり、そのフィールド削除したりすると、Mongo側にuniqueなindexが張られてたのは残るので、saveしようとすると、 E11000 duplicate key error index: mydb.myCollection.$field_1 dup key: { : null }みたいな感じでエラる。…

Ubuntuに最新版のMongoDBをインストールする

MongoDBを普通にapt-getで入れると古いバージョンがインストールされる(現時点で最新が1.8.2に対して1.2.2がインストールされた)ので最新版をインストールするにはちょっと手間が必要。ここに載ってる。 Install MongoDB — MongoDB Manual 3.2手順は、まず…

MongooseでEmbedded Documentsの削除

やり方わからんくてソースまで読んだけど結局公式のドキュメントに書いてあったというオチ。 http://mongoosejs.com/docs/embedded-documents.html

mongodbの資料とか

かなりいい感じにまとまってるスライド。 MongoDB全機能解説1 MongoDB全機能解説2リレーションについて。 http://d.hatena.ne.jp/masa_w/20101130/1291084939追記していくかも。