使用Async.js,MongoDB通过$ in保持订单

时间:2016-11-01 17:51:22

标签: javascript mongodb async.js

就像你知道from(u in User, left_join: up in assoc(u, :user_projects), where: up.project_id != ^project.id AND not(is_nil(up.project_id)), select: {u.id, u.username}) 没有保持秩序。

我想将Async.js用于此目的。

例如

{$in: {_id: []}}

如何使用Async.js执行此操作?我使用的const ids = [3,1,2]; // Initial ids, I get it from aggregation const documents = [{_id:1}, {_id:2}, {_id: 3}]; // That's I get from MongoDB const result = [{_id:3}, {_id: 1}, {_id: 2}] // That's I need mongoose-fill无法使用mongoose.js

1 个答案:

答案 0 :(得分:1)

这里你不需要异步。自然JavaScript排序将帮助您解决此问题。

要查询mongodb,只需使用像这样的查询

{_id : {$in: [1,2,3]}} ;

当您收到这样的结果时

const documents = [{_id:1}, {_id:2}, {_id: 3}];

现在你可以运行简单的排序

let result = documents.sort((a, b) => a._id < b._id);

console.log(result);

将按ID降序输出排序。

[{_id:3}, {_id: 2}, {_id: 1}];

希望这有帮助。