【问题标题】:Ruby Mongo Driver: How To Look For Date Intervals?Ruby Mongo 驱动程序:如何查找日期间隔?
【发布时间】:2023-03-17 12:36:01
【问题描述】:

给定一个初始日期和今天,搜索该日期之间所有“名称”的查询是什么?

谢谢

【问题讨论】:

    标签: ruby-on-rails-3 mongodb mongodb-ruby


    【解决方案1】:

    MongoMapper

    您应该能够使用 MongoMapper 的查询运算符。假设您有一个带有“created_on”日期的“用户”模型,您可以使用它来获取名称。 (我相信 MongoDB 使用 UTC Times 来存储所有日期/时间对象):

    initial_date = Time.utc(2011, 5, 1) # 2011-05-01 00:00:00 UTC
    @users = User.where(:created_on => {:$gte => initial_date, :$lte => Time.now.utc})
    @users.each do |user|
      puts user.name
    end
    

    Ruby Mongo 驱动程序

    initial_date = Time.utc(2011, 5, 1) # 2011-05-01 00:00:00 UTC
    @conn = Mongo::Connection.new
    @db = @conn['my_db']
    @collection = @db['users']
    @users = @collection.find(:created_on => {:$gte => initial_date, :$lte => Time.now.utc})
    @users.each do |user|
      puts user['name']
    end
    

    【讨论】:

    • 谢谢,但我不能使用“where”。我使用的是 ruby​​ mongo 驱动程序而不是映射器。对不起。谢谢
    • “initial_date”必须是哪种格式?我无法让它匹配任何东西。
    • @donald:这种查询格式实际上适用于两种驱动程序。请参阅我的更新答案。初始日期必须是 UTC 时间。
    猜你喜欢
    • 1970-01-01
    • 2012-11-17
    • 2016-10-09
    • 1970-01-01
    • 1970-01-01
    • 2018-09-19
    • 2020-09-18
    • 1970-01-01
    • 2013-06-28
    相关资源
    最近更新 更多