gpt4 book ai didi

javascript - 查找 ID 数组,并将它们映射到单独模式中的项目数组

转载 作者:行者123 更新时间:2023-12-03 00:28:18 25 4
gpt4 key购买 nike

我有一个 outfits 数据库,其中每件服装都是一组唯一的 id。我还有一个单独的项目数据库,每个项目都有一个唯一的 ID。

我正在尝试从 outfits 中获取一组数组并获取相应项目的详细信息。

我编写了一个函数来通过 Id 查找项目,并将它们发送到前端,但我似乎无法维护响应中的数组结构。

exports.outfitRendered = (req, res) => {
var outfits = [["5c25109c07c4dd627126a1a6", "5c25109c07c4dd627126a1a6"], ["5c25109c07c4dd543126a1a6"]];

// CREATE SOME EMPTY ARRAYS
var newArray = []
var outerArray = []

// LOOK UP THE ITEMS IN THE OUTFIT FROM USER DB
function lookup(outfitId) {
return new Promise(function (resolve, reject) {
for (y of outfitId) {
//console.log(y);
User.aggregate([
{ $match: { '_id': mongoose.Types.ObjectId(req.user.id) } },
{ $unwind: '$wardrobe.items' },
{ $match: { 'wardrobe.items._id': y } },
{ $project: { 'wardrobe.items': 1, '_id': 0 } }
]).then(function (res) {
newArray.push(res)
}).then(function (resp) {
resolve(this.newArray);
});
}
});
}


// PUSH ITEMS INTO NEW ARRAY
function build(array) {
return new Promise(function (resolve, reject) {
for (x of array) {
console.log(x);
lookup(x)
.then(function () {
outerArray.push(newArray);
console.log('incoming')
resolve(this.outerArray);
})
}
});
}


// SEND TO FRONTEND
var ready = build(outfits)
.then(function () {
res.json(outerArray);
});
}

这段代码将var dresss中的第一个值发送到前端,看起来不错。但我不知道如何在结果中获得相同的数组结构。

应该是这样的

原文:服装:

[["5c25109c07c4dd627126a1a6", "5c25109c07c4dd627126a1a6"], ["5c25109c07c4dd543126a1a6"]]

结果:outerArray:

[[“红色衬衫”,“黑色裤子”],[“蓝色牛仔裤”]]

最佳答案

const items = { "5c25109c07c4dd587126a1a6": "Red shirt", "5c25109c07c4dd627126a1a6": "Black pants", "5c25109c07c4dd543126a1a6": "Blue jeans" };
const outfits = [
["5c25109c07c4dd587126a1a6", "5c25109c07c4dd627126a1a6"],
["5c25109c07c4dd543126a1a6"]
];

function getItem(itemId) {
return items[itemId];
/*return User.aggregate([
{ $match: { '_id': mongoose.Types.ObjectId(req.user.id) } },
{ $unwind: '$wardrobe.items' },
{ $match: { 'wardrobe.items._id': itemId } },
{ $project: { 'wardrobe.items': 1, '_id': 0 } }
]);*/
}

function lookupItems(outfits) {
return Promise.all(outfits.map(itemIds => {
return Promise.all(itemIds.map(getItem))
}));
}

lookupItems(outfits).then(items => {
console.log(items);
});

关于javascript - 查找 ID 数组,并将它们映射到单独模式中的项目数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53990432/

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