当我进行mongo$push时,我希望在集合的开头添加push add,而不是追加到末尾.

是否可以进行原子推送更新,将元素作为第一个元素而不是最后一个元素添加?


2014 update: yes you can.

推荐答案

从MongoDB v2开始.5.3,有一个新的$position运算符,可以与$each运算符一起作为$push查询的一部分,用于指定数组中要插入值的位置.

下面是docs页面中的一个示例,在数组索引2:处添加元素20和30:

db.students.update( { _id: 1 },
                    { $push: { scores: {
                                         $each: [ 20, 30 ],
                                         $position: 2
                                       }
                             }
                    }
                  )

参考:http://docs.mongodb.org/master/reference/operator/update/position/#up._S_position

Mongodb相关问答推荐

在提供的文档(_Id)之后和之前,是否有一个Mongo操作来获取已排序(和/或过滤)集合中的文档计数?

定期自动轮换 MongoDb 集合

MongoDB - 分组并找到前 N 个

哪个库最适合用于带有 Scala 的 MongoDB?

如何在 MongoDb 中进行类似于嵌套 Sql Select 查询的嵌套查询

通过 Spring Boot 应用程序访问 mongodb 时的身份验证错误

Mongoose Schema vs Mongo Validator

在 mongodb 中查找字段的所有非不同值

MongoDB:多个 $elemMatch

MongoDB - 投影一个并不总是存在的字段

MongoDB $or 查询

MongoDB - 我如何找到另一个集合中的文档未引用的所有文档

MongoDB count() 未定义

如何在 MongoDB Map-reduce 映射函数中使用变量

初创公司应该考虑哪些数据库系统?

Mongoose:查询starts with

在 Ubuntu 13.10 (saucy) 中安装 Mongodb PHP 扩展的最简单方法?

对于社交网站(使用 Ruby on Rails 开发)来说,MongoDB 会是一个好主意吗?

MongoDB 引用的最佳实践

开发人员必须采取哪些mental steps才能开始从 SQL 迁移到 NOSQL(CouchDB、Fathom DB、MongoDB 等)?