MongoDB-如何在$ slice投影中使用字段值



给定一个简单的文档,例如:

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

最新更新