【发布时间】:2017-07-01 13:17:59
【问题描述】:
以下查询在 mongo 中的行为很奇怪:
db.items.findOne({},{ "List": { "$slice": [ skip, 3 ] }})
首先: 它不是只返回一个带有 ["_id","List"] 键的对象,而是返回一个完整的对象。
第二:
如果skip 为负且|skip| 高于list.length,则返回前三个元素,就像skip==0 一样
我希望:
{
"_id" : ObjectId("542babf265f5de9a0d5c2928"),
"List" : [
1,
2,
3,
4,
5
]
"other" : "not_important"
}
查询:
db.items.findOne({},{ "List": { "$slice": [-10, 3 ] }})
得到:
{
"_id" : ObjectId("542babf265f5de9a0d5c2928"),
"List" : []
}
相反,我得到:
{
"_id" : ObjectId("542babf265f5de9a0d5c2928"),
"List" : [
1,
2,
3
]
"other" : "not_important"
}
为什么?
我使用 mongoDB 2.4.10
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework