相关疑难解决方法(0)

MongoDB范围查询中$ lt和$ gt的顺序

今天我注意到,给出了$ lt和$ gt运算符的顺序似乎在MongoDB 2.0.2中很重要.

我有一个游戏数据库."player"是表示两个玩家的两个字符串的数组,"endedAtMS"是游戏结束时的时间戳.我创建了这个索引:

db.games.ensureIndex({player:1,endedAtMS:-1})
Run Code Online (Sandbox Code Playgroud)

为了获得30个在特定时间范围内完成的游戏,在游戏完成时排序,我这样做:

db.games.find({ "player" : "Stefan" , 
                "endedAtMS" : { "$lt" : 1321284969946 , 
                                "$gt" : 1301284969946}}).
         sort({endedAtMS:-1}).
         limit(30).
         explain()

{
    "cursor" : "BtreeCursor player_1_endedAtMS_-1",
    "nscanned" : 30,
    "nscannedObjects" : 30,
    "n" : 30,
    "millis" : 0,
    "nYields" : 0,
    "nChunkSkips" : 0,
    "isMultiKey" : true,
    "indexOnly" : false,
    "indexBounds" : {
        "player" : [
            [
                "Stefan",
                "Stefan"
            ]
        ],
        "endedAtMS" : [
            [
                1321284969946,
                -1.7976931348623157e+308
            ]
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

一切似乎都很好.但是当我在上面的查询中更改$ lt和$ gt的顺序时,我得到了这个:

db.games.find({ "player" …
Run Code Online (Sandbox Code Playgroud)

mongodb

18
推荐指数
1
解决办法
3万
查看次数

标签 统计

mongodb ×1