【问题标题】:MongoDB search by DateTime type not workingMongoDB按日期时间类型搜索不起作用
【发布时间】:2016-09-27 09:53:59
【问题描述】:

您好,我是 Mongo DB 的新手并尝试从它开始,我创建了一个集合并将此文档插入其中

{
"_id" : ObjectId("574ad7c42368e58f8c07a47d"),
"id" : 10000,
"BookieId" : 1,
"EventBookieId" : null,
"LeagueId" : 214,
"LeagueNameId" : 4571,
"Team1Id" : 435,
"Team1NameId" : null,
"Team2Id" : 430,
"Team2NameId" : null,
"EventDateTime" : "2013-09-14T14:00:00",
"isNew" : true,
"CountryId" : 36,
"isCountry" : true,
"isLeague" : true,
"Gameid" : null,
"Reversed" : false,
"eventId" : 10000,
"bets" : [ 
    {
        "id" : 1,
        "EventConnectionId" : 10000,
        "isCorners" : false,
        "DateTime" : "2013-09-10T09:06:43.333",
        "IsLive" : false,
        "Team1Score" : null,
        "Team2Score" : null,
        "Team1RedCards" : null,
        "Team2RedCards" : null,
        "odds" : []
    }, 
    {
        "id" : 2,
        "EventConnectionId" : 10000,
        "isCorners" : false,
        "DateTime" : "2013-09-10T19:50:26.84",
        "IsLive" : false,
        "Team1Score" : 0,
        "Team2Score" : 0,
        "Team1RedCards" : null,
        "Team2RedCards" : null,
        "odds" : [ 
            {
                "id" : 62282718,
                "BetId" : 2,
                "BookieId" : 1,
                "BookieBetId" : "21968173",
                "ScrapingDateTime" : "2013-09-13T08:39:15.81",
                "MinuteInGame" : null,
                "GamePart" : null,
                "Odds1" : 1.81,
                "Odds2" : 2.1236,
                "Odds3" : null,
                "MaxBet" : 2000,
                "Bet" : "Hcap",
                "BetGamePart" : 0,
                "Line" : -0.25,
                "ID_IDENTITY" : 1
            }, 
            {
                "id" : 62282719,
                "BetId" : 2,
                "BookieId" : 1,
                "BookieBetId" : "21968175",
                "ScrapingDateTime" : "2013-09-13T08:39:15.81",
                "MinuteInGame" : null,
                "GamePart" : null,
                "Odds1" : 2.04167,
                "Odds2" : 1.86,
                "Odds3" : null,
                "MaxBet" : 2000,
                "Bet" : "Total",
                "BetGamePart" : 0,
                "Line" : 2.0,
                "ID_IDENTITY" : 2
            }, 
            {
                "id" : 62282720,
                "BetId" : 2,
                "BookieId" : 1,
                "BookieBetId" : "21968177",
                "ScrapingDateTime" : "2013-09-13T08:39:15.81",
                "MinuteInGame" : null,
                "GamePart" : null,
                "Odds1" : 2.16,
                "Odds2" : 3.45,
                "Odds3" : 3.05,
                "MaxBet" : 1000,
                "Bet" : "X12",
                "BetGamePart" : 0,
                "Line" : null,
                "ID_IDENTITY" : 3
            }, 
            {
                "id" : 62282721,
                "BetId" : 2,
                "BookieId" : 1,
                "BookieBetId" : "21968179",
                "ScrapingDateTime" : "2013-09-13T08:39:15.81",
                "MinuteInGame" : null,
                "GamePart" : null,
                "Odds1" : 2.21951,
                "Odds2" : 1.7,
                "Odds3" : null,
                "MaxBet" : 1000,
                "Bet" : "Hcap",
                "BetGamePart" : 1,
                "Line" : -0.25,
                "ID_IDENTITY" : 4
            }, 
            {
                "id" : 62282722,
                "BetId" : 2,
                "BookieId" : 1,
                "BookieBetId" : "21968180",
                "ScrapingDateTime" : "2013-09-13T08:39:15.81",
                "MinuteInGame" : null,
                "GamePart" : null,
                "Odds1" : 2.78,
                "Odds2" : 3.9,
                "Odds3" : 1.99,
                "MaxBet" : 500,
                "Bet" : "X12",
                "BetGamePart" : 1,
                "Line" : null,
                "ID_IDENTITY" : 5
            }, 
            {
                "id" : 62282723,
                "BetId" : 2,
                "BookieId" : 1,
                "BookieBetId" : "21968181",
                "ScrapingDateTime" : "2013-09-13T08:39:15.81",
                "MinuteInGame" : null,
                "GamePart" : null,
                "Odds1" : 1.93,
                "Odds2" : 1.95,
                "Odds3" : null,
                "MaxBet" : 1000,
                "Bet" : "Total",
                "BetGamePart" : 1,
                "Line" : 0.75,
                "ID_IDENTITY" : 6
            }, 
            {
                "id" : 62290838,
                "BetId" : 2,
                "BookieId" : 1,
                "BookieBetId" : "14382209",
                "ScrapingDateTime" : "2013-09-13T15:38:11.303",
                "MinuteInGame" : null,
                "GamePart" : null,
                "Odds1" : 1.81,
                "Odds2" : 2.1236,
                "Odds3" : null,
                "MaxBet" : 2000,
                "Bet" : "Hcap",
                "BetGamePart" : 0,
                "Line" : -0.25,
                "ID_IDENTITY" : 7
            }, 
            {
                "id" : 62290839,
                "BetId" : 2,
                "BookieId" : 1,
                "BookieBetId" : "14382211",
                "ScrapingDateTime" : "2013-09-13T09:27:39.6",
                "MinuteInGame" : null,
                "GamePart" : null,
                "Odds1" : 2.05263,
                "Odds2" : 1.85,
                "Odds3" : null,
                "MaxBet" : 2000,
                "Bet" : "Total",
                "BetGamePart" : 0,
                "Line" : 2.0,
                "ID_IDENTITY" : 8
            }, 
            {
                "id" : 62290840,
                "BetId" : 2,
                "BookieId" : 1,
                "BookieBetId" : "14382213",
                "ScrapingDateTime" : "2013-09-13T10:29:22.863",
                "MinuteInGame" : null,
                "GamePart" : null,
                "Odds1" : 2.15,
                "Odds2" : 3.45,
                "Odds3" : 3.1,
                "MaxBet" : 1000,
                "Bet" : "X12",
                "BetGamePart" : 0,
                "Line" : null,
                "ID_IDENTITY" : 9
            }, 
            {
                "id" : 62290841,
                "BetId" : 2,
                "BookieId" : 1,
                "BookieBetId" : "14382215",
                "ScrapingDateTime" : "2013-09-13T15:38:11.303",
                "MinuteInGame" : null,
                "GamePart" : null,
                "Odds1" : 2.21951,
                "Odds2" : 1.7,
                "Odds3" : null,
                "MaxBet" : 1000,
                "Bet" : "Hcap",
                "BetGamePart" : 1,
                "Line" : -0.25,
                "ID_IDENTITY" : 10
            }, 
            {
                "id" : 62290842,
                "BetId" : 2,
                "BookieId" : 1,
                "BookieBetId" : "14382216",
                "ScrapingDateTime" : "2013-09-13T15:38:11.303",
                "MinuteInGame" : null,
                "GamePart" : null,
                "Odds1" : 2.78,
                "Odds2" : 3.9,
                "Odds3" : 1.99,
                "MaxBet" : 500,
                "Bet" : "X12",
                "BetGamePart" : 1,
                "Line" : null,
                "ID_IDENTITY" : 11
            }, 
            {
                "id" : 62290843,
                "BetId" : 2,
                "BookieId" : 1,
                "BookieBetId" : "14382217",
                "ScrapingDateTime" : "2013-09-13T15:38:11.303",
                "MinuteInGame" : null,
                "GamePart" : null,
                "Odds1" : 1.93,
                "Odds2" : 1.95,
                "Odds3" : null,
                "MaxBet" : 1000,
                "Bet" : "Total",
                "BetGamePart" : 1,
                "Line" : 0.75,
                "ID_IDENTITY" : 12
            }, 
            {
                "id" : 62381139,
                "BetId" : 2,
                "BookieId" : 1,
                "BookieBetId" : "20864356",
                "ScrapingDateTime" : "2013-09-13T15:38:11.303",
                "MinuteInGame" : null,
                "GamePart" : null,
                "Odds1" : 2.05263,
                "Odds2" : 1.85,
                "Odds3" : null,
                "MaxBet" : 2000,
                "Bet" : "Total",
                "BetGamePart" : 0,
                "Line" : 2.0,
                "ID_IDENTITY" : 13
            }, 
            {
                "id" : 62381140,
                "BetId" : 2,
                "BookieId" : 1,
                "BookieBetId" : "20864358",
                "ScrapingDateTime" : "2013-09-13T15:38:11.303",
                "MinuteInGame" : null,
                "GamePart" : null,
                "Odds1" : 2.15,
                "Odds2" : 3.45,
                "Odds3" : 3.1,
                "MaxBet" : 1000,
                "Bet" : "X12",
                "BetGamePart" : 0,
                "Line" : null,
                "ID_IDENTITY" : 14
            }
        ]
    }
]

}

现在我正在尝试使用此查询按日期查找

db.EventsBetsOdds.find( { "bets": { $elemMatch: { "DataTime": "2013-09-10T09:06:43.333" } } } );

在 400 毫秒内获取了 0 条记录 我得到了什么,我做错了什么?

我试图在这个字段上放一个索引,索引完成了

【问题讨论】:

    标签: mongodb datetime mongodb-query


    【解决方案1】:

    你的 mongo 查询应该是这样的:

     db.testes.find({
         'bets.DateTime': '2013-09-10T09:06:43.333'
     }, {
         'bets': {
             $elemMatch: {
                 'DateTime': '2013-09-10T09:06:43.333'
             }
         }
     })
    

    或者是这样的:

    db.testes.find({
        'bets.DateTime': '2013-09-10T09:06:43.333'
    }, {
        'bets.$': 1
    })
    

    有用的链接:

    【讨论】:

    • 谢谢!如果我想在这个值上使用 $gte?我试图将 $elemMatch 更改为 $gte 并收到错误
    • AFAIK 该字段应该是ISODate 类型,以便使用$gte 运算符进行查询。
    猜你喜欢
    • 2019-02-27
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    • 1970-01-01
    • 2011-04-30
    相关资源
    最近更新 更多