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