1
我有猫鼬ID的数组如下:排序在JavaScript的数组基于另一个阵列
var ids =[
mongoose.Types.ObjectId('58c2871414cd3d209abf4fc1'),
mongoose.Types.ObjectId('58c2871414cd3d209abf4fc0'),
mongoose.Types.ObjectId('58c2871414cd3d209abf5fc0')
];
当我打电话给我的猫鼬函数来得到匹配这些ID的子文档,对象还给我按照它们在数据库中的发现顺序。我可以根据上述'ids'数组的顺序重新排序吗?
的数据返回给我如下:
[ { _id: 58c2871414cd3d209abf5fc9,
companyname: 'Dell',
position:
{ _id: 58c2871414cd3d209abf5fc0,
title: 'Software Engineer',
location: 'Waterford',
start: 'May 2017',
term: 6,
description: ' Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus quis erat vitae dsit amet, consectetur adipiscing elit. Vivamus quis erat vitae dolor tempus euismod non in mi' },
{ _id: 58ca9fd6588205e9c8f01431,
companyname: 'Google',
position:
{ _id: 58c2871414cd3d209abf4fc0,
title: 'Software Engineer',
location: 'Waterford',
start: 'May 2017',
term: 6,
description: ' Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus quis erat vitae dsit amet, consectetur adipiscing elit. Vivamus quis erat vitae dolor tempus euismod non in mi' },
{ _id: 58ca9fd6588205e9c8f01431,
companyname: 'Google',
position:
{ _id: 58c2871414cd3d209abf4fc1,
title: 'Software Engineer',
location: 'Waterford',
start: 'June 2017',
term: 12,
description: ' Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus quis erat vitae dsit amet, consectetur adipiscing elit. Vivamus quis erat vitae dolor tempus euismod non in mi' },
]
是否有任何方式重新排序在原有基础阵列上这些?请注意,数组中返回了两个_ids,它是我需要订购的位置子文档的ID。真的卡住了,如果任何人都可以帮助这将是伟大的!
编辑:
我Node.js的功能如下:
var ids =[mongoose.Types.ObjectId('58c2871414cd3d209abf4fc0'), mongoose.Types.ObjectId('58c2871414cd3d209abf4fc1'), mongoose.Types.ObjectId('58c2871414cd3d209abf5fc0')];
User.aggregate({ $unwind : "$position" },
{ $match: { "position._id": {
$in: ids }
}
}
, function(err, results){
// results.sort((a, b) => {
console.log(a+" "+b);
// return ids.indexOf(mongoose.Types.ObjectId(a.position._id))
// - ids.indexOf(mongoose.Types.ObjectId(b.position._id))
// })
res.send({results:results});
});
});
在控制台登录:
[object Object] [object Object]
[object Object] [object Object]
感谢您的帮助下完成!我有点卡住如何将其纳入我的代码,但我更新了我的问题,以显示我的Node.js发布请求获取数据..如果我做错了,你会有一个想法吗?现在,如果我把它留在它被评论的地方,数组将返回相同的..再次感谢! – user
你的意思是当排序函数不被评论时的代码返回相同的数组? –
是的,这很奇怪..我不确定我是否在错误的地方或东西? @Khaled Hamed – user