给定一个简单的文档,例如:
{
myArray : [12, 10, 40, -1, -1, ..., -1], //'-1' is a int placeholder
latestUpdatedIndex : 2
}
我知道我将在 myArray
中放置多少个值,因此我以 -1
值的速度预先放置空间,以使更新更有效。我跟踪我在 latestUpdatedIndex
我可以在$slice
投影中使用latestUpdatedIndex
的值吗?
coll.find({}, {'myArray':{'$slice':[0, <value of latestUpdatedIndex>]}
您不能使用普通查询来执行此操作,但是可以使用聚合(在MongoDB 3.2中)进行操作:
db.collection.aggregate([
{ $project: { mySlicedArray: { $slice: [ "$myArray", "$latestUpdatedIndex" ] } } }
])