我正在尝试按照本文http://zaiste.net/2012/08/importing_json_into_mongodb/ 中的步骤将一个名为breedData.json 的文件导入mongodb 。
所以我从我的应用程序的根文件夹在终端中输入下面的命令。品种数据.json 文件也在应用程序根文件夹中。Mongod 和 nodemon 正在运行。
mongoimport --db shelterdoggie --collection breeds --type json --file breedData.json --jsonArray
Run Code Online (Sandbox Code Playgroud)
我明白了:
2015-09-07T00:58:18.646-0700 connected to: localhost
2015-09-07T00:58:18.647-0700 Failed: error reading separator after document #2: bad JSON array format - found '{' outside JSON object/array in input source
2015-09-07T00:58:18.647-0700 imported 0 documents
Run Code Online (Sandbox Code Playgroud)
我已经用 jsonlint.com 检查了我的文件,它是有效的 json。
我已经尝试在上面的终端命令中使用这种 json 格式:
[
{"malehw":"Ht: 9-11.5, Wt: 7-9","femalehw":"Ht: 9-11.5, Wt: 7-9"},
{"malehw":"Ht: 27, Wt: 60","femalehw":"Ht: 25, Wt: 50"},
{"malehw":"Ht: 23, Wt: 45","femalehw":"Ht: <23, Wt: 45"} …Run Code Online (Sandbox Code Playgroud) 我正在尝试在server.js文件中运行此函数:
function formatArr (targetArr, characteristic, formattedArr) {
console.log(characteristic);
for (var i = 0; i < targetArr.length; i++) {
formattedArr.push({characteristic:targetArr[i]})
};
return formattedArr;
};
Run Code Online (Sandbox Code Playgroud)
如果我这样称呼它:
var targetSize = Object.keys(JSON.parse(req.query.size)); //[s,m,l]
var sizeKey = "size";
// format size array for mongodb query
var formattedSize = [];
var formattedSize = formatArr(targetSize, sizeKey, formattedSize);
console.log(formattedSize);
Run Code Online (Sandbox Code Playgroud)
它是控制台日志"大小",但它不会用formattedSize数组中的字大小替换字特征.这是我在服务器控制台中获得的内容:
size
[ { characteristic: 's' },{ characteristic: 'm' },{ characteristic: 'l' } ]
Run Code Online (Sandbox Code Playgroud)
如何在阵列中使用大小替换特征?这是我想要的输出:
size
[ { size: 's' },{ size: 'm' },{ size: 'l' } ]
Run Code Online (Sandbox Code Playgroud)
我希望能够重用formatArr函数和其他特性.
arguments ×1
for-loop ×1
function ×1
javascript ×1
json ×1
mongodb ×1
mongoimport ×1
parameters ×1