gpt4 book ai didi

javascript - 如何在 lokijs 集合中获取嵌套对象

转载 作者:行者123 更新时间:2023-11-29 21:44:29 24 4
gpt4 key购买 nike

我正在使用 lokijs 来存储一些我需要使用的数据。我的数据如下所示。作为 lokijs 的新手,我一直在努力寻找一种方法来从 part 中获取 item_part_option_groupsarray。

我的代码

        partDb = new loki('part.json');
partData = partDb.addCollection('part');
$.get(urlHelper.createUrl('item/parts', 'part', config.partId + '.json'), function(data){
partData.insert(data);
var data = partData.find({'part':'item_part_option_groups'});
console.log(data);
});

数据

   {
"part": {
"item_part_id": 10,
"name": "Sleeve",
"has_validation": 0,
"description": "",
"is_disabled": "1",
"created": "2015-07-22T23:55:09+0000",
"updated": null,
"item_part_option_groups": [{
"item_part_option_group_id": 10,
"order_index": 0,
"description": "",
"item_part_id": 10,
"created": "2015-07-22T23:55:39+0000",
"updated": null,
"item_part_options": [{
"item_part_option_id": 8,
"name": "Sleeve Type",
"is_conform_value": 0,
"has_validation": 1,
"item_part_option_type_id": 3,
"created": "2015-07-22T23:57:24+0000",
"updated": null,
"item_part_option_values": [{
"value": "Short Sleeve",
"order_index": 0,
"item_part_option_id": 8,
"item_part_option_value_id": 7,
"item_part_option_includes": [

]
}, {
"value": "Long Sleeve",
"order_index": 0,
"item_part_option_id": 8,
"item_part_option_value_id": 8,
"item_part_option_includes": [

]
}, ]
}]
}]
}

}

最佳答案

如果我没理解错的话,你的生活太复杂了。LokiJS 会向你的对象添加一些属性(比如 id $loki 和一个 meta 对象),但基本上它会返回对这个稍微修改过的原始对象的引用(除非你在构建集合时使用 clone 选项).

这意味着 - 记录 item_part_option_groups - 你只需要做:

console.log(data.item_part_option_groups)

您在 find 中编写的查询将在 partData 中寻找一个对象收藏其 part属性等于 item_part_option_groups .显然这不是你想要的。一旦对象在集合中 - 这发生在这里:

partData.insert(data)

记录是一个普通的js对象,所以如果你把它改成:

var record = partData.insert(data)

您只需引用 record['item_part_option_groups']去抢你想要的属性(property)。然而,所有这些与 LokiJS 几乎没有关系:在我看来,您似乎正在尝试获取“部分”对象,而这只能通过 map-reduce 或其他更复杂的转换来完成。

关于javascript - 如何在 lokijs 集合中获取嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31690510/

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