【发布时间】:2019-01-06 20:03:26
【问题描述】:
我有一个存储在 MongoDB 中的数组,我按照我如何检索它的顺序检索和显示它,并让用户用它做一些事情。这些项目可能完全相同,意味着没有任何更改,有些可能被删除,甚至可能是不同的顺序。
最后,当它提交给我时,我有一个可用的数组,它为我提供了所有 id 的列表(mongo 自动创建的 id)。如何根据我检索到的只有 id 的数组重新排列存储在 MongoDB 中的数组。
如果你想要一个例子,它像这样存储在 Mongo 中
components: [
{
"_id": {
"$oid": "5c323c8123f8cb1d1034c16a"
},
"componentName": "Apple"
},
{
"_id": {
"$oid": "5c324a1a79e775435c91a919"
},
"componentName": "Banana"
},
{
"_id": {
"$oid": "5c324a8707eca920fc1d31bc"
},
"componentName": "Orange"
},
{
"_id": {
"$oid": "5c324ace07eca920fc1d31bd"
},
"componentName": "Watermelon"
}]
我得到的数组是这样的
["5c324a8707eca920fc1d31bc", "5c324a1a79e775435c91a919"]
意味着第一个和最后一个元素被删除,第二个和第三个被交换。所以我希望在 mongo 中修改 components 数组,使其看起来像这样
components: [
{
"_id": {
"$oid": "5c324a8707eca920fc1d31bc"
},
"componentName": "Orange"
},
{
"_id": {
"$oid": "5c324a1a79e775435c91a919"
},
"componentName": "Banana"
}]
附言。如果您从未使用过 MongoDB。 MongoDB 数组中的 ID 只需使用 components[1].id 即可访问,这将给出“5c323c8123f8cb1d1034c16a”
我真的想不出一种方法来正确地做到这一点,而我想到的“hacky”方式涉及更改我已经编写的一些代码,所以我想知道是否有办法实现这一点.
【问题讨论】:
标签: javascript node.js mongodb algorithm sorting