2016-12-05 83 views
1

給定一個簡單的文件,如:

{ 
    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>]} 

回答

1

你不能這樣做,使用正常的查詢,但你可以用它做aggregation(MongoDB中3.2):

db.collection.aggregate([ 
    { $project: { mySlicedArray: { $slice: [ "$myArray", "$latestUpdatedIndex" ] } } } 
])