【发布时间】:2019-05-21 15:22:53
【问题描述】:
我需要根据我传入的数组的索引来更新文档的字段顺序。但是当我调用这个API时,最终结果是[],并且数据库中没有预期的变化。需要你的建议
我传入的数组是:
["5c1b9f2b66922a77ec7116a1", "5c1b9d4a66922b77ec81169f"]
exports.update_item_order = (req, res, next) => {
const idList = req.body.idList;
if (!idList) {
res.status(400).json({
message: "Missing request paramaters"
});
}
vouchers.aggregate([{
"$match": {
"_id": {
"$in": idList
}
}
}, {
"$addFields": {
"order": {
"$indexOfArray": [idList, "$_id"]
}
}
}, {
"$sort": {
"order": 1
}
}]).exec((err, result) => {
if (err) {
return res.status(500).json();
}
return res.status(200).json({
message: 'Status update successfully',
result
})
})
};
我从中检索的样本集合
【问题讨论】:
-
非常感谢,现在我可以使用$match了,我还在想如何使用$in,因为mongoose不能自动将字符串转换为objectId
标签: mongodb mongoose aggregation-framework