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」という名前で作成してます。5件だけ取得するコードを作成してみます。
require "mongo"
Mongo::Logger.logger.level = ::Logger::FATAL
begin
c = Mongo::Client.new(["127.0.0.1:27017"])
d = c.use("hoge")
d[:foo].find().limit(5).each { |doc| puts doc }
rescue Mongo::Error::NoServerAvailable => e
p e
end
実行結果を確認すると、5件だけドキュメントが取得されていることが確認できます。
> ruby test.rb
{"_id"=>BSON::ObjectId('61c58bf09d1a5be60905803e'), "name"=>"itiro", "age"=>10.0, "gender"=>"m"}
{"_id"=>BSON::ObjectId('61c58bf09d1a5be60905803f'), "name"=>"jiro", "age"=>20.0, "gender"=>"m"}
{"_id"=>BSON::ObjectId('61c58bf09d1a5be609058040'), "name"=>"saburo", "age"=>30.0, "gender"=>"m"}
{"_id"=>BSON::ObjectId('61c58bf09d1a5be609058041'), "name"=>"siro", "age"=>40.0, "gender"=>"f"}
{"_id"=>BSON::ObjectId('61c58bf09d1a5be609058042'), "name"=>"goro", "age"=>50.0, "gender"=>"x"}
開始位置を指定
skipを使用すると開始位置を指定することが可能です。
require "mongo"
Mongo::Logger.logger.level = ::Logger::FATAL
begin
c = Mongo::Client.new(["127.0.0.1:27017"])
d = c.use("hoge")
d[:foo].find().skip(2).limit(5).each { |doc| puts doc }
rescue Mongo::Error::NoServerAvailable => e
p e
end
実行結果
> ruby test.rb
{"_id"=>BSON::ObjectId('61c58bf09d1a5be609058040'), "name"=>"saburo", "age"=>30.0, "gender"=>"m"}
{"_id"=>BSON::ObjectId('61c58bf09d1a5be609058041'), "name"=>"siro", "age"=>40.0, "gender"=>"f"}
{"_id"=>BSON::ObjectId('61c58bf09d1a5be609058042'), "name"=>"goro", "age"=>50.0, "gender"=>"x"}
{"_id"=>BSON::ObjectId('61c58bf09d1a5be609058043'), "name"=>"gonbe", "age"=>60.0, "gender"=>"x"}
{"_id"=>BSON::ObjectId('61c58bf09d1a5be609058044'), "name"=>"gonbe", "age"=>70.0, "gender"=>"x"}
-
前の記事
mongoDB distinctした結果をカウントする 2022.12.12
-
次の記事
WinSCP ホームディレクトリに移動するショートカットキー 2022.12.12
コメントを書く