1

「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()

日付の保存形式の違いによるものですか?

4

0 に答える 0