我有一种类型的文档,它有一个聚合数组,我限制200个具有最新日期的元素,每当我向这个数组添加新项目时,我按日期和切片排序,我将它改为200为了性能,但我想增加限制,尺寸不是问题,因为它们是最多7个元素的简单对象,我的问题是:
我想避免调用$sort
,因为我认为它过于昂贵而且直接调用$slice
,因为我认为按日期排序没有意义,但问题是最新的项目被添加到底部对于数组,有没有办法将项添加到数组的顶部?
这样就可以在不调用$sort
的情况下对其进行排序,我可以直接$slice
。
答案 0 :(得分:1)
如果没有在2.4或更早版本中排序,则无法执行此操作,但在下一个主要版本the $push
operator中将additional capabilities,包括推送到阵列的前,如果你总是插入比以前存储的更晚的日期,那么你可能想要做的事情。
该功能在开发版本2.5.3及更高版本中可用,但这些不是稳定的生产版本,因此我建议在其中尝试使用该功能,但在2.6发布之前不要部署到生产中。