我正在从API中检索JSON数据,这只是一个简短的例子:
{"hatenames":
{"id":6239,
"name":"hatenames",
"stat1":659,
"stat2":30,
"stat3":1414693
}
}
我正在尝试将其插入MongoDB(使用 MongoClient ),但它不会让我直接放置对象或使用变量作为字段名称。如果我输入var用户名,它只会在数据库字段中将其输出为用户名。这就是我想要的工作:
collection.insert({object}
collection.insert({username:object[username]}
但事实并非如此,过去几个小时我一直坚持这一点。我找到的唯一解决方案就是设置它然后更新字段名称,但是每次都要做的事情似乎很蹩脚,是不是有一些优雅或简单的选项让我不知何故?
答案 0 :(得分:1)
尝试这样做:
Object.keys(hatenames)
修改强>
对于动态方法,我建议你玩这个function:
{{1}}
此函数将返回数组中的键。
编辑2
我已经建立了一个链接:Insert json file into mongodb using a variable
看,如果有帮助。
答案 1 :(得分:1)
首先,作为程序员,你应该忘记“它不起作用”的短语。您应该描述它如何与您遇到的确切错误消息一起使用。不是你的问题。
仅仅因为我可以轻松做到
db.coll.insert({"hatenames":
{"id":6239,
"name":"hatenames",
"stat1":659,
"stat2":30,
"stat3":1414693
}
})
或var a = {"hatenames":{"id":6239, "name":"hatenames", "stat1":659, "stat2":30, "stat3":1414693}};
和db.coll.insert(a)
,
我认为问题在于你的对象实际上不是一个对象,而是一个字符串。所以我怀疑你有一个从该API返回给你的字符串。像'{"hatenames":{...}'
之类的东西,这会在您尝试保存或访问属性时导致问题。所以尝试将其转换为JSON。