我有一个模特:
class SimpleAction
include Mongoid::Document
field :set_date, :type => Date
我收集了一些数据:
{“_ id”:ObjectId(“4f6dd2e83a698b2518000006”),“name”:“lost”, “notes”:“”,“set_date(1i)”:“2012”,“set_date(2i)”:“3”, “set_date(3i)”:“25”,“set_date(4i)”:“13”,“set_date(5i)”:“57”, “持续时间”:15,“待办事项”:“4”}
你可以在五个字段中看到mongoid存储日期 - set_date(ni)。
我有两个问题:
如何通过mongo控制台客户端中的set_date字段过滤数据?像这样:
db.simple_actions.find({ set_date : { "$lte" : new Date() } })
我的查询未返回任何数据。
如何通过Rails控制器中的set_date字段过滤数据?像这样:
@simple_actions = SimpleAction.where(:set_date => { '$lte' => Date.today })
答案 0 :(得分:14)
我建议不要使用Date
,而应使用DateTime
:
field :set_date, :type => DateTime
现在不仅将它存储在1个字段中,如下所示:
"set_date" : ISODate("2012-03-14T17:42:27Z")
但Mongoid会正确处理您想要的各种转换:
SimpleAction.where( :set_date => { :$lte => Date.today } )
答案 1 :(得分:0)
您可以在课程时间使用它。
Rails非常适合移动设备(例如Android),当您将日期从手机发送到Api时:1482723520。(last_created = 1482723520)
你可以这样使用它:
Number.where(created_at: { :$gte => time })
在Rails中你可以这样查询:
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_height="match_parent"
android:layout_width="match_parent"
app:cardBackgroundColor="@color/cardview_light_background"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:layout_marginLeft="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right|center_vertical"
android:id="@+id/txtSearchSpecialAttrTitle"
android:padding="5dp"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/SearchSpecialAttrEditText"
android:gravity="right|center_vertical"
android:inputType="number"
android:theme="@style/Theme.App.Base"
/>
</LinearLayout>
</android.support.v7.widget.CardView>