サーチ…
前書き
MongoDBは、フリーでオープンソースのクロスプラットフォームのドキュメント指向データベースプログラムです。従来のSQLデータベースとは異なり、MongoDBはBSON(JSONなど)を使用してデータを格納します。 MeteorはデータベースストレージとしてMongoDBを使用するように設計されています。このトピックでは、MongoDBストレージをMeteorアプリケーションに実装する方法について説明します。
リモートMongo DBのエクスポート、ローカルMeteor Mongo DBへのインポート
本番データベースのコピーをローカルで再生する場合に役立ちます。
-
mongodump --host some-mongo-host.com:1234 -d DATABASE_NAME -u DATABASE_USER -p DATABASE_PASSWORD
これにより、ローカル・dump
ディレクトリーが作成されます。そのディレクトリ内にDATABASE_NAME
ディレクトリが表示されます。 - ローカル流星アプリが実行されている状態で、
dump
ディレクトリから次のmongorestore --db meteor --drop -h localhost --port 3001 DATABASE_NAME
実行しますmongorestore --db meteor --drop -h localhost --port 3001 DATABASE_NAME
あなたの地元の流行Mongo DBのMongo URLを入手してください
Meteorアプリがローカルで実行されている間:
meteor mongo --url
あなたの地元の流行のアプリケーションをMongoの別のDBに接続する
ローカルのMeteorアプリケーションを起動する前にMONGO_URL
環境変数を設定してください。
Linux / MacOSの例:
MONGO_URL="mongodb://some-mongo-host.com:1234/mydatabase" meteor
または
export MONGO_URL="mongodb://some-mongo-host.com:1234/mydatabase"
meteor
Windowsの例
注意:使用していません"
set MONGO_URL=mongodb://some-mongo-host.com:1234/mydatabase
meteor
NPM
//package.json
"scripts": {
"start": "MONGO_URL=mongodb://some-mongo-host.com:1234/mydatabase meteor"
}
$ npm start
MongoDBなしで流星を走らせる
MONGO_URL
をデータベースURL以外の任意の値に設定し、MongoDBなしでMeteorを実行するために、Meteorプロジェクト(Meteorパッケージで定義されたコレクションを含む)で定義されたコレクションがないことを確認してください。
MongoDBなしでは、Meteorのユーザアカウントシステムに関連するパッケージと並んで、サーバ/クライアントメソッドは定義されません。例: Meteor.userId()
Linux / Mac:
MONGO_URL="none" meteor
または
export MONGO_URL="none"
meteor
Windows:
set MONGO_URL=none
meteor
入門
Meteorプロジェクト内で次のコマンドを実行して、 mongo
シェルを起動できます。
meteor mongo
注意:サーバー側のデータベースコンソールの起動は、Meteorがアプリケーションをローカルで実行している場合にのみ機能します。
その後、 mongo
シェルで次のコマンドを実行することで、すべてのコレクションをリストすることができます。
show collections
また、ドキュメントのクエリ、挿入、更新、削除などの基本的なMongoDB操作を実行することもできます。
クエリ文書
ドキュメントはfind()
メソッドを使って問い合わせることができます。例:
db.collection.find({name: 'Matthias Eckhart'});
これにより、 name
属性がMatthias Eckhart
設定されているすべての文書がリストされます。
ドキュメントを挿入する
ドキュメントをコレクションに挿入する場合は、次のコマンドを実行します。
db.collection.insert({name: 'Matthias Eckhart'});
ドキュメントの更新
ドキュメントを更新する場合は、 update()
メソッドを使用します。
db.collection.update({name: 'Matthias Eckhart'}, {$set: {name: 'John Doe'}});
このコマンドを実行すると、フィールドname
John Doe
という値を設定することで、 単一のドキュメントが更新されます(初期値はMatthias Eckhart
でした)。
特定の条件に一致するすべてのドキュメントを更新する場合は、 multi
パラメータをtrue
に設定しtrue
。たとえば、次のようになります。
db.collection.update({name: 'Matthias Eckhart'}, {$set: {name: 'John Doe'}}, {multi: true});
これで、最初にname
属性がMatthias Eckhart
設定されていたコレクション内のすべてのドキュメントがJohn Doe
更新されました。
ドキュメントの削除
ドキュメントは、 remove()
メソッドを使用すると簡単に削除できます。たとえば、次のようにします。
db.collection.remove({name: 'Matthias Eckhart'});
これにより、 name
フィールドで指定された値と一致するすべての文書が削除されます。