gpt4 book ai didi

javascript - Alasql - 查询json中的嵌套对象

转载 作者:行者123 更新时间:2023-11-30 09:52:01 24 4
gpt4 key购买 nike

我有一个如下所示的 json 对象。

易趣对象

    {
__v: 0
_id: "56e192f0aea7131c15513328"
headquarters: "New York"
name: "Ebay"
productCategories: [{
_id: "56e193beaea7131c1551332d"
name: "Footwear"
products: [{
name: 'Shiela',
price: 420,
totalSales: [10, 20]
}, {
name: 'Parry',
price: 350,
totalSales: [50, 20]
}]
totalSales: 100
}, {
1: Object
_id: "56e193beaea7131c1551332e"
name: "Clothes"
products: [{
name: 'Kurta',
price: 210,
totalSales: [60, 80]
}, {
name: 'Sun Glass',
price: 785,
totalSales: [5, 25]
}],
totalSales: 170
}]
}

亚马逊对象

{
__v: 0
_id: "56e192f0aea7131c15513328"
headquarters: "New York"
name: "Amazon"
productCategories: [{
_id: "56e193beaea7131c1551332d"
name: "Footwear"
products: [{
name: 'Shiela',
price: 280,
totalSales: [10, 20]
}, {
name: 'Parry',
price: 785,
totalSales: [50, 20]
}]
totalSales: 100
}, {
1: Object
_id: "56e193beaea7131c1551332e"
name: "Clothes"
products: [{
name: 'Kurta',
price: 150,
totalSales: [60, 80]
}, {
name: 'Sun Glass',
price: 485,
totalSales: [5, 25]
}],
totalSales: 170
}]
}

我想选择产品类别中的每个名称,这对两家公司都是通用的。

然后,我想选择常见产品类别中常见的产品。

然后我想得到共同产品(对两家公司)的价格进行比较

我可以运行下面的查询

 alasql('SELECT products FROM ? AS CATEGORY1 JOIN ? AS CATEGORY2 USING [0]', [$scope.company1.productCategories, $scope.company2.productCategories], function(data) {
console.log("join query executed");
console.log(data);
});

我想在每个产品类别中查找产品。我想要这样的查询

alasql('SELECT products.name,products.price FROM ? as category1 join ? as category2 using products.name', [$scope.company1.productcategories,$scope.company2.productcategories], function(data) {
console.log("Query executed");
console.log(data);
});

但这会出错。

请告诉我正确的程序。

问候,萨巴里斯里

最佳答案

首先,当您只处理本地内存时,有理由将其设为异步。所以你的第一个改变应该是使用

var res = alasql('SELECT productCategories->0->name FROM ?',[$scope.selectedCompanies]);

你们很亲近。您基本上只想查询 productCategories 数据 - 所以您应该这样做

var res = alasql('SELECT name FROM ?',[$scope.selectedCompanies.productCategories]);

奖励信息:如果你想加入某事,你可以做类似的事情

var res = alasql('SELECT p.name, d.stock FROM ? p JOIN ? d ON p.name = d.company',[$scope.selectedCompanies.productCategories, $scope.otherData]);

关于javascript - Alasql - 查询json中的嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35960845/

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