Ruby mongoDBに接続してドキュメントを削除する

Rubyで、mongoDBに接続してドキュメントを削除するソースコードを記述してます。ライブラリ「mongo」を使用して実装してます。また実際に、実行した結果をキャプチャして掲載してます。
環境
- OS windows11 home
- ruby ruby 3.0.3p157 (2021-11-24 revision 3fb7d2cadc) [x64-mingw32]
- mongoDB 5.2.0
- vscode 1.63.2
mongoインストール
ライブラリ「mongo」を使います。ない場合は「gem」を使ってインストールしておきます。
gem install mongo
サンプルコード
localhostにある「mongoDB」に接続して、以下のDB「hoge」にあるコレクション「foo」のドキュメントを使用して、サンプルコードを実行してみます。

ここでは「test.rb」という名前で作成してます。条件を指定して、1件だけ削除するコードを作成してみます。
require "mongo"
Mongo::Logger.logger.level = ::Logger::FATAL
begin
c = Mongo::Client.new(["127.0.0.1:27017"])
d = c.use("hoge")
result = d[:foo].delete_one({:gender => "m"})
p result
rescue Mongo::Error::NoServerAvailable => e
p e
end
実行結果を確認すると、指定した条件でデータが1件だけ削除されていることが確認できます。
> ruby test.rb
#<Mongo::Operation::Delete::Result:0x740 documents=[{"n"=>1, "ok"=>1.0}]>

複数削除
複数の値を削除するには「insert_many」を使用します。
require "mongo"
Mongo::Logger.logger.level = ::Logger::FATAL
begin
c = Mongo::Client.new(["127.0.0.1:27017"])
d = c.use("hoge")
result = d[:foo].delete_many({:gender => "m"})
p result
rescue Mongo::Error::NoServerAvailable => e
p e
end
実行結果
> ruby test.rb
#<Mongo::Operation::Delete::Result:0x740 documents=[{"n"=>2, "ok"=>1.0}]>
複数件、削除されていることが確認できます。

-
前の記事
mongoDB メソッドの一覧を確認する 2022.10.31
-
次の記事
sakuraエディタ メニューを開くショートカットキー 2022.10.31
コメントを書く