2017-04-19 29 views
0

我想在我的應用程序中使用範圍查詢GT,LT,GTE使用rails 4.2 & dynamoid 1.3。它的結果沒有價值。如何使用Rails 4的Dynamoid條件範圍查詢

的Gemfile

gem 'dynamoid', '1.3.0' 
gem 'aws-sdk', '~> 2' 

配置/初始化/ dynamoid.rb

Dynamoid.configure do |config| 
    config.access_key = '******************' 
    config.secret_key = '**********************' 
    config.region = 'us-east-1' 
    config.adapter = 'aws_sdk_v2' 
    config.namespace = '***********' 
    config.warn_on_scan = true 
    config.read_capacity = 200 
    config.write_capacity = 100 
end 

我使用學生表。下面是我的模型類

class Student 
    include Dynamoid::Document 
    table :name => :students 

    field :first_name 
    field :age, :integer 
end 

當我使用下面的查詢它導致NIL

Student.where(:"age.gt" => 2).all 

請建議

+0

現在這樣的條件適用於任何屬性 – andrykonchin

回答

0

範圍修飾符(GT,GTE等)只能使用當你有一個範圍指數。

從文檔: -

如果您有一系列指標,Dynamoid提供了許多額外的 其他方便的方法來讓你的生活變得更輕鬆:

User.where(」 created_at.gt」 => DateTime.now - 1.day)。所有 User.where( 「created_at.lt」=> DateTime.now - 1.day)。所有

它還支持.gte和.lte 。將它們轉換爲符號並允許使用Rails SQL風格的字符串語法。由於DynamoDB的固有限制,每個查詢只能有一個 範圍參數,因此請合理使用它!