mongo $ slice query reverse index außerhalb des zulässigen Bereichs

Die folgende Abfrage in Mongo verhält sich seltsam:

db.items.findOne({},{ "List": { "$slice": [ skip, 3 ] }})

First: Anstatt nur ein Objekt mit den Schlüsseln ["_id", "List"] zurückzugeben, wird ein vollständiges Objekt zurückgegeben.

Second: ifskip ist negativ und|skip| ist höher als list.length, dann werden die ersten drei Elemente zurückgegeben, als obskip==0

Ich würde erwarten für:

{
       "_id" : ObjectId("542babf265f5de9a0d5c2928"),
       "List" : [
                1,
                2,
                3,
                4,
                5
        ]
        "other" : "not_important"
}

Abfrage

db.items.findOne({},{ "List": { "$slice": [-10, 3 ] }})

bekommen

{
       "_id" : ObjectId("542babf265f5de9a0d5c2928"),
       "List" : []
}

stattdessen bekomme ich:

{
       "_id" : ObjectId("542babf265f5de9a0d5c2928"),
       "List" : [
                1,
                2,
                3
        ]
        "other" : "not_important"
}

Warum

Ich benutze mongoDB 2.4.10

Antworten auf die Frage(2)

Ihre Antwort auf die Frage