2016-05-16 58 views
1

我的ObjectID的排列如下所示:

var list = [{_id: ObjectId(1)}, {_id: ObjectId(2)}, {_id: ObjectId(3)}];

我需要通過下面的查詢來查詢這些文件:

Post.find({_id: {$in: list}}).exec(function (err, posts) { 
    console.log(posts); 
}); 

但不幸的是的posts的順序是隨機的。根據list陣列進行正確訂購的最佳方式是什麼?

回答

1

對於這個問題,我們有兩種選擇:

  1. 排序客戶端
  2. 排序使用聚合框架按本answer

    db.x.aggregate:([​​{$排序:{列表:1}}])

+0

感謝您的答案,但我不能通過使用聚合becase排序我查詢文檔的_id和沒有他們的上下文 – Erik

+0

@Erik - 所以只能應用客戶端排序或按要求的順序保存文檔:-) – profesor79

+0

感謝您的幫助 – Erik

相關問題