2

我正在使用 lokijs 来存储一些我需要使用的数据。我的数据如下所示。作为 lokijs 的新手,我一直在努力寻找一种方法来item_part_option_groups摆脱part.

我的代码

        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": [

                        ]
                    }, ]
                }]
            }]
        }

    }
4

1 回答 1

2

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

这意味着 - 要记录item_part_option_groups- 您只需执行以下操作:

console.log(data.item_part_option_groups)

您写入的查询将在集合中find查找属性等于的对象。显然这不是你想要的。一旦对象在集合中 - 这发生在这里:partDatapartitem_part_option_groups

partData.insert(data)

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

var record = partData.insert(data)

你只需要参考record['item_part_option_groups']去抢你想要的属性。然而,所有这一切都与 LokiJS 无关:在我看来,您似乎在尝试获取“部分”对象,而这只能通过 map-reduce 或其他更复杂的转换来完成。

于 2015-07-29T11:12:36.127 回答