Javascript Meteor将JSON导入到集合中
我正在尝试将一个包含嵌入对象的JSON文件导入MongoDB,并想知道如何格式化以正确导入文档。若要清除,文档格式必须保持当前格式。我必须修改/创建一个函数或方法,以允许导入此文件,并在sport events array循环中关联_id(为简洁起见,我将其短接至一个sports event array)。也许一个更好的提问方式是如何导入sports event数组中的所有内容并保留文档的其余部分 JSON文档Javascript Meteor将JSON导入到集合中,javascript,json,mongodb,meteor,Javascript,Json,Mongodb,Meteor,我正在尝试将一个包含嵌入对象的JSON文件导入MongoDB,并想知道如何格式化以正确导入文档。若要清除,文档格式必须保持当前格式。我必须修改/创建一个函数或方法,以允许导入此文件,并在sport events array循环中关联_id(为简洁起见,我将其短接至一个sports event array)。也许一个更好的提问方式是如何导入sports event数组中的所有内容并保留文档的其余部分 JSON文档 { "sports-content": { "sport-event": [
{
"sports-content": {
"sport-event": [{
"event-metadata": {
"league": "NCAA Basketball",
"event-type": "0",
"league-details": "NCAAB",
"event-date-time": "12/18/2015 07:00 PM",
"eventNum": "3000460",
"status": "",
"off-the-board": "False"
},
"team": [{
"team-metadata": {
"alignment": "Home",
"nss": "526",
"openNum": "526",
"name": {
"full": "Clemson"
}
},
"wagering-stats": {
"wagering-straight-spread": {
"bookmaker-name": "BetOnline",
"active": "true",
"line": "1.5",
"money": "-110",
"context": "current"
}
},
"team-stats": {
"score": "0"
}
}, {
"team-metadata": {
"alignment": "Away",
"openNum": "525",
"nss": "525",
"name": {
"full": "South Carolina"
}
},
"wagering-stats": {
"wagering-straight-spread": {
"bookmaker-name": "BetOnline",
"active": "true",
"line": "-1.5",
"money": "-110",
"context": "current"
}
},
"team-stats": {
"score": "0"
}
}]
}],
"sports-meta-data": {
"doc-time": "42353.5979256944"
}
}
}
Meteor.startup下的Meteor server.js
if (SportEventsFeed.find().count() === 0) {
console.log("Importing private/products.json to db")
var data = JSON.parse(Assets.getText("ncaab.json"));
data.forEach(function (item, index, array) {
SportEventsFeed.insert(item);
})
}
以下是如何将“sports event”数组中的项目作为单个文档插入数据库中。
我不确定索引值是否是您想要的_id字段,如果不更改分配给项目_id的值(或注释掉这一行作为默认_id)
谢谢你的回答!我尝试了几种点符号排列,现在只是复制并粘贴了您的答案以防万一,我仍然在服务器端遇到错误:ReferenceError:内容未定义hh,请尝试此
数据['sports-content']['sports-event']
谢谢。尝试此操作时出现错误-数据['sports-content']['sports-event']。forEach(函数(项、索引、数组)-TypeError:无法调用未定义的……数据的方法'forEach'。[sports-content']['sports-event']-错误数组。forEach未定义的……数据。['sports-content'].'sports-event']。forEach-错误数组.forEach(本机)。因此,上一个版本出现错误:Array.forEach(本机)。我返回到您的原始版本,这次在没有索引的情况下再次尝试,结果成功了。谢谢!
if (SportEventsFeed.find().count() === 0) {
console.log("Importing private/products.json to db")
var data = JSON.parse(Assets.getText("ncaab.json"));
data['sports-content']['sports-event'].forEach(function (item, index, array) {
item._id = index;
SportEventsFeed.insert(item);
})
}