gpt4 book ai didi

javascript - 如何重新排序存储在 Mongo 中的这个数组中的项目?

转载 作者:可可西里 更新时间:2023-11-01 10:45:16 27 4
gpt4 key购买 nike

我有一个存储在 MongoDB 中的数组,我按照检索它的顺序检索和显示它,并让用户使用它进行操作。这些项目可以完全相同,这意味着没有任何改变,一些可以被删除,或者甚至可以是不同的顺序。

最后,当它被提交回给我时,我有一个数组可供我使用,它为我提供了所有 id 的列表(id 是 mongo 自动创建的)。我如何根据检索到的只有 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: [
{
"_id": {
"$oid": "5c324a8707eca920fc1d31bc"
},
"componentName": "Orange"
},
{
"_id": {
"$oid": "5c324a1a79e775435c91a919"
},
"componentName": "Banana"
}]

附言。如果您从未使用过 MongoDB。只需使用 components[1].id 即可访问 MongoDB 数组中的 ID,这将给出“5c323c8123f8cb1d1034c16a”

我真的想不出一种方法来正确地做到这一点,我想到的“hacky”方法涉及更改我已经编写的一些代码,所以我想知道是否有一种方法可以实现这一点.

最佳答案

也许 .populate 方法可以帮助您: https://mongoosejs.com/docs/populate.html#population

Story.
findOne({ title: 'Casino Royale' }).
populate('author').
exec(function (err, story) {
if (err) return handleError(err);
console.log('The author is %s', story.author.name);
// prints "The author is Ian Fleming"
});

关于javascript - 如何重新排序存储在 Mongo 中的这个数组中的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54065415/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com