私がこれを質問しているのは、ユニット テストを書くときに、テスト データベースを削除して初期化データを挿入し、テストで mongodb のデータも確認したいからです。そのため、mongodb への生の操作が必要です。
これを mongoose で実行するにはどうすればよいですか? 今できることは、接続を作成することだけです。mongoose の公式サイトでドキュメントを見つけることはできません。
var mongoose = require('mongoose');
mongoose.connect('mongo://localhost/shuzu_test');
// get the connection
var conn = mongoose.connection;
しかし、どのようにすればよいのでしょうか。
- データベースを削除する
- コレクションを作成する
- コレクションにデータを書き込む
- コレクションをクエリする
- コレクションをドロップする
ベストアンサー1
を使用すると、ネイティブNodeJSドライバを使用してmongodbコマンドを実行できますmongoose.connection.db
。これによりNodeJS MongoDBドライバにアクセスし、マングースモデルを作成する必要はありません。
挿入物
mongoose.connection.db.collection('userCollection').insert({
username: 'captain1',
firstName: 'Steve',
lastName: 'Rogers',
});
アップデート
mongoose.connection.db.collection('userCollection').update(
{someFilterProperty: true},
{$set: {
siteId: new mongoose.mongo.ObjectId('56cb91bdc5946f14678934ba'),
hasNewSiteId: true}},
{multi: true});
});
データベース接続 db 参照を使用して、そのデータベースに固有のすべてのコマンドを送信できますmongoose.connection.db
。
これは mongoose API ドキュメントです:接続データベース
重要: NodeJSドライバのオプションの一部は、MongoDBシェルコマンドのオプションと異なることに注意してください。たとえば、の代わりにfindOneAndUpdate()
を使用します。returnOriginal
returnNewDocument
ここそしてここ詳細については、こちらをご覧ください。