添加到收集流星的顶部

时间:2015-05-19 03:32:58

标签: mongodb meteor

我正在构建一个流星社交网络类型的应用程序,它需要在集合的顶部而不是底部插入文档。我怎样才能做到这一点?它必须像JS unshift()

2 个答案:

答案 0 :(得分:2)

你不应该依赖MongoDB文件" natural"订单,因为它不可预测(MongoDB引擎随时可以移动文档)。

在您的收藏架构中添加另一个专门用于排序的字段,例如类型为createdAt的{​​{1}}或Date类型的order,并在显示您的文档时,使用Mongo Number子句。

虽然在sort字段之间保持一致性,但仍有开销。

答案 1 :(得分:2)

没有" top"一个集合,除了capped collection's

您需要做的是在进行查询时根据字段对集合进行排序。

所以例如像这样插入的文件

 db.enemies.insert({ name: "Zod"})
 db.enemies.insert({ name: "Lex Luthor"})
当像这样查询时,

将以适当的字母顺序返回

db.enemies.find({}).sort({name:1})

对于大型馆藏,您希望在搜索条件和排序条件(排序问题!)上创建compound index以加快速度

db.collection.ensureIndex({queryField1:1, queryField2:1, sortField1:1, sortField2:-1})