我在使用 javascript 脚本检索存储在 MongoDB 中的字段时遇到问题。
在网络爬网后,数据库已自动存储。这是一个条目的示例:
{
"_id" : ObjectId("51ed0b2e12fd5629bf380355"),
"title" : "Robert",
"extraction" : {
"infobox" : [
{
"given name" : {
"region" : "Germanic",
"articles" : "Robert",
"pronunciation" : "{{IPAc-en|ˈ|r|ɒ|b|ər|t}}",
"related names" : "Rob, Robbie, Robin, Rupert, Bob, Bobby, Bert, Rahbert",
"name" : "Robert",
"gender" : "Male",
"meaning" : "\"fame-bright\""
}
}
]
}
}
我必须重试所有夫妻头衔相关的名字。我写了这个javascript:
db = connect("localhost:27017/Test");
var nameCursor = db.Test.find({"extraction.infobox.given name.related names":{$exists:true}},{"title":1,"extraction.infobox.given name.related names":1});
nameCursor.forEach(
function(myDoc) {
print(myDoc.title+" "+extraction.infobox.given name.related names );
}
);
quit();
given name
由于和related names
字段中的空间,当它必须打印时,这当然不起作用。有没有办法逃脱这个空间,或者至少打印我最终会解析的信息框json 字符串?
提前致谢!
PS 我已经知道下次我将不得不用 . 替换字段键中的空格_
。提取需要很长时间,现在我很着急:)
在 Sammaye 评论后编辑
使用extraction.infobox['given name']['related names']
,它给了我错误
JavaScript execution failed: TypeError: Cannot read property 'related names' of undefined at names.js:L14
当然,如果我使用extraction.infobox['given name']
它打印
Robert undefined