Mongoose で生の MongoDB 操作を実行するにはどうすればいいですか? 質問する

Mongoose で生の MongoDB 操作を実行するにはどうすればいいですか? 質問する

私がこれを質問しているのは、ユニット テストを書くときに、テスト データベースを削除して初期化データを挿入し、テストで mongodb のデータも確認したいからです。そのため、mongodb への生の操作が必要です。

これを mongoose で実行するにはどうすればよいですか? 今できることは、接続を作成することだけです。mongoose の公式サイトでドキュメントを見つけることはできません。

 var mongoose = require('mongoose');
 mongoose.connect('mongo://localhost/shuzu_test');

 // get the connection
 var conn = mongoose.connection;

しかし、どのようにすればよいのでしょうか。

  1. データベースを削除する
  2. コレクションを作成する
  3. コレクションにデータを書き込む
  4. コレクションをクエリする
  5. コレクションをドロップする

ベストアンサー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()を使用します。returnOriginalreturnNewDocumentここそしてここ詳細については、こちらをご覧ください。

おすすめ記事