基本的には以下のサイトを参考にすればよい
Cloud Firestore の Datastore モードでの使用 | Google App Engine flexible environment docs | Google Cloud
が!、一点公式ドキュメントには見当たらなかった(自分が見つけるのが下手なのだろう…)
制限があり、躓きました。
visits = datastore.run query
の後に、vistis.countをしても300件までしか取れない…
業務上300件以上のデータを扱っていたので、これではまずいと調べてみたところ…
以下のように書く必要がありました。
visits.all.each
カウントの場合は、visits.all.count
require "digest/sha2"
require "sinatra"
require "google/cloud/datastore"
get "/" do
datastore = Google::Cloud::Datastore.new
# Save visit in Datastore
visit = datastore.entity "Visit" do |v|
v["user_ip"] = Digest::SHA256.hexdigest request.ip
v["timestamp"] = Time.now
end
datastore.save visit
# Query the last 10 visits from the Datastore
query = datastore.query("Visit").order("timestamp", :desc).limit(10)
visits = datastore.run query
response.write "Last 10 visits:\n"
visits.all.each do |visit|
response.write "Time: #{visit['timestamp']} Addr: #{visit['user_ip']}\n"
end
content_type "text/plain"
status 200
end
コメント