サーチ…
前書き
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フィールドで指定された値と一致するすべての文書が削除されます。