繁体   English   中英

MeteorJS:很难理解集合

[英]MeteorJS: Having a hard time understanding collections

我是MeteorJS的新手,并且正在构建一个应用程序,该程序基于XML api服务在Google Map上绘制点(使用它们的API),单击这些点之一时,将显示详细信息。 非常简单。

我正在苦苦挣扎的是,我需要存储API结果,以便每次加载页面时都不会ping通API,并且由于Meteor使用MongoDB,我想将结果存储在集合中,但是我不确定我了解如何使用它们。

XML提要如下所示:

<api version="1.0">
    <id>597837338</id>
    <time>3/6/2014 11:46:46 PM</time>
    <machine>query://djsearch6/dejobs</machine>
    <query>sales OR marketing</query>
    <recordcount>500</recordcount>
    <startrow>1</startrow>
    <endrow>10</endrow>
    <order>relevance</order>
    <jobs>
    <job>
        <title>
        Customer Service Representative - State Farm Agent Team Member (Property and Casualty Insurance Focus)
        </title>
        <url>http://my.jobs/a897284496c14249a8473d5947d08b4d321</url>
        <company>Cie Taylor - State Farm Agent</company>
        <location>Mesa, AZ</location>
        <dateacquired>2014-1-19 1:31 AM</dateacquired>
        <jvid>a897284496c14249a8473d5947d08b4d321</jvid>
    </job>
    <job>
        <title>
        Insurance and Financial Services Position - State Farm Agent Team Member (Sales experience preferred)
        </title>
        <url>http://my.jobs/1b717b9492464fbabbd22d3c0e8cf08d321</url>
        <company>Cie Taylor - State Farm Agent</company>
        <location>Mesa, AZ</location>
        <dateacquired>2014-1-19 1:31 AM</dateacquired>
        <jvid>1b717b9492464fbabbd22d3c0e8cf08d321</jvid>
    </job>
  </jobs>
</api>

我认为这可以为您提供一个大致的思路,如果我无法正确理解您的问题,我深表歉意:

要将XML解析为JSON: http : //davidwalsh.name/convert-xml-json

首先将XML解析为JSON,例如,想象一下从XML中提取的JSON:

var dataFromXML = {
    "company": 597837338,
    "createdAt": "3/6/2014 11:46:46 PM",
    "jobs": [
        {"title": "job1", "url": "job1url", "company": "job1company", "location": "job1location", "dateUpdate": "job1date", "id": "job1id" },
        {"title": "job2", "url": "job2url", "company": "job2company", "location": "job2location", "dateUpdate": "job2date", "id": "job2id" }
    ]
};

现在,您可以在服务器脚本上将此数据插入集合中:

JobsCollection.insert({company: dataFromXML.company ,dataFromAPI: dataFromXML});

如果您的结果是一个数组,则可以在forEach循环上运行它:

var dataFromXMLArray = [
    {
        "company": 597837338,
        "createdAt": "3/6/2014 11:46:46 PM",
        "jobs": [
            {"title": "job1", "url": "job1url", "company": "job1company", "location":   "job1location", "dateUpdate": "job1date", "id": "job1id" },
            {"title": "job2", "url": "job2url", "company": "job2company", "location": "job2location", "dateUpdate": "job2date", "id": "job2id" }
        ]
    },
    {
        "company": 597837338,
        "createdAt": "3/6/2014 11:46:46 PM",
        "jobs": [
            {"title": "job1", "url": "job1url", "company": "job1company", "location": "job1location", "dateUpdate": "job1date", "id": "job1id" },
            {"title": "job2", "url": "job2url", "company": "job2company", "location": "job2location", "dateUpdate": "job2date", "id": "job2id" }
        ]
    }
];

dataFromXMLArray.forEach(function (data) {
    JobsCollection.insert({company: data.company, dataFromAPI: data});
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM