Node.js 在MongoDB中维护自定义订单/文档排序
在我的web应用程序XY中,我向用户显示了一个经典的数据(文档)列表/表格。虽然MongoDB(以及Mongoose,我正在使用Mongoose)提供的所有排序函数对我来说都非常清楚,但我对按日期或字母顺序排序不感兴趣。在我的例子中,让用户维护自定义排序非常重要,就像手动拖放项目一样,以设置文档的特定顺序(例如,将收藏夹放在列表的顶部)。要做到这一点,用户界面是很简单的,但是如何在数据库中实际保存订单,大脑冻结 问题:如何保存这样一个自定义的文档顺序 我使用什么:NodeJS/Express/Mongoose(MongoDB)Node.js 在MongoDB中维护自定义订单/文档排序,node.js,mongodb,sorting,mongoose,Node.js,Mongodb,Sorting,Mongoose,在我的web应用程序XY中,我向用户显示了一个经典的数据(文档)列表/表格。虽然MongoDB(以及Mongoose,我正在使用Mongoose)提供的所有排序函数对我来说都非常清楚,但我对按日期或字母顺序排序不感兴趣。在我的例子中,让用户维护自定义排序非常重要,就像手动拖放项目一样,以设置文档的特定顺序(例如,将收藏夹放在列表的顶部)。要做到这一点,用户界面是很简单的,但是如何在数据库中实际保存订单,大脑冻结 问题:如何保存这样一个自定义的文档顺序 我使用什么:NodeJS/Express/M
思想 到目前为止,我能想到两个如何做到这一点的想法
- A:在mongoose模式中有一个额外的键(例如,
)。大弊病:我需要不断更新所有文档和订单密钥。我还需要一些新文档的自动增量orderKey
constmysch=新模式({
orderKey:{type:Number}
});
- B:创建一个仅用于排序的架构/模型,例如使用包含所有文档ID的
数组。数组中元素的顺序将用作文档自定义顺序的参考。每当顺序改变时,这个
数组也会改变
conts orderSch=新架构({
orderArray:{type:Array}
});
猫鼬模型('Order',orderSch);
/*const customOrder=新订单({
orderArray:[\u id1、\u id2、\u id3、\u id10、\u id7、…]
}); */
任何更多的想法或最佳实践都将受到高度赞赏 我找到了一个解决方案custom mongorc.js,它默认为您排序文档键。它叫[Mongo Hacker][1][1]:@pawansgi92谢谢你的建议。我快速浏览了一下这个mongo黑客工具,但如果我想为每个用户定制订单,甚至子文档或参考文档,我认为它并不合适。我正在寻找一个解决方案,了解如何“存储/保存”订单。我不是在寻找对文档进行排序的解决方案。