「publishFrom と publishTo の間の sysdate」などの Oracle のような基準に基づいて MongoDB コレクションからレコードを取得したいのですが、それができません。あなたの助けに感謝。
データは次のようになります。
{
"_id" : ObjectId("5580fcdd9aaebd3e6591e65d"),
"category" : "green",
"noticeText" : "vacation notice",
"publishFrom" : "06/17/2015 10:21 AM",
"publishTo" : "08/19/2015 10:21 AM"
}
{
"_id" : ObjectId("558106a79aaebd55af91e66a"),
"category" : "red",
"noticeText" : "notice 1",
"publishFrom" : "06/22/2017 11:02 AM",
"publishTo" : "06/22/2017 11:02 AM"
}
次のクエリは正しい結果を返します。
db.notices.find({publishTo: {$gte: "08/19/2015 10:21 AM"}}).pretty()
{
"_id" : ObjectId("5580fcdd9aaebd3e6591e65d"),
"category" : "green",
"noticeText" : "vacation notice",
"publishFrom" : "06/17/2015 10:21 AM",
"publishTo" : "08/19/2015 10:21 AM"
}
しかし、次のクエリは間違ったすべてのレコードを返します
db.notices.find({publishFrom: {$gte: "06/17/2015 10:21 AM"}}).pretty()
現在の時刻が PublishFrom と publishTo の間にある通知を見つけるために、Oracle のようなクエリを作成するのに苦労しています。
また、次のような日付変数を使用してみました:
> var dt = new Date()
> dt
ISODate("2015-06-17T05:43:23.634Z")
ただし、次のクエリは結果を返しません
db.notices.find({publishFrom: {$gte: dt}}).pretty()
日付の保存形式の違いによるものですか?