MongoDB查询结果
你好,我是MongoDB的新成员。 我有6个对象是这样的:MongoDB查询结果
{
"_id" : ObjectId("5957a8eee0f3890011b64b99"),
"name" : "Interní šetření spokojenosti zaměstnanců",
"client" : ",
"version" : "",
"date" : ISODate(""),
"ip" : "",
"answers" : {
"doporucil_produkt" : "ano",
"vystupovani_firmy" : "ano",
"vim_vizi" : "ne",
"uvazuje_ozmene_proc_zustat" : "lepšie finančné ohodnotenie, zlepšenie tímovej práce",
"uvazuje_ozmene_proc" : "vzdialenosť od bydliska",
"uvazuje_ozmene" : "ano",
"rozvoj_skoleni_chci" : "jazykový kurz",
"rozvoj_skoleni" : "",
"rozvoj_iniciativa" : "ano",
"rozvoj_naslouchaji" : "ano",
"rozvoj_vimco" : "ne",
"rozvoj_rust_moznosti" : "5",
"rozvoj_rust" : "[\"Aktivní participace na strategii firmy\",\"Zvyšování odbornosti\"]",
"rozvoj_zustanu" : "ano",
"spokojenostsnaplni" : "5",
"rozumimnaplni" : "ano",
"doporucilibyste" : "4",
"ohodnoceni_prostredi_cozmenit" : "možnosť využitia bazénu a tenisových kurtov aj pre zamestnancov",
"ohodnoceni_prostredi" : "dobrý kávovar, príjemné prostredie",
"ohodnoceni_benefity_zbytecne_dalsi" : "",
"ohodnoceni_benefity_chci_dalsi" : "lekárske prehliadky - v jeden deň\r\ndovolenka navyše",
"ohodnoceni_benefity_dalsi" : "",
"ohodnoceni_benefity" : "[\"benefits_homeoffice\",\"benefits_flexibleworkinghours\",\"benefits_car\"]",
"ohodnoceni_benefity_spokojenost" : "ano",
"ohodnoceni_proc_nepokojenost" : "",
"ohodnoceni_spokojenost" : "ano",
"ohodnoceni_proc_podhoceni" : "300€",
"ohodnoceni_dle_vykonu" : "ne",
"leadership_podpora_life" : "5",
"leadership_podpora_work" : "4",
"leadership_realnepozadavky" : "ano",
"leadership_ocekavani" : "ano",
"leadership_komunikace" : "4",
"leadership_minus" : "viesť kolektív k tímovosti",
"leadership_plus" : "priamosť, ústretovosť",
"leadership_score" : "5",
"leadership_komunikace_firma" : "3",
"tym_spoluprace" : "4",
"tym_offwork" : "ne",
"leadership_komunikace_tym" : "3",
"tym_kolegove" : "ne",
"dreamjob" : "ne",
"spokojenost" : "4",
"workExperience" : "many",
"quitYear" : "",
"workedYears" : "0,6",
"status" : "current",
"position" : "manažér predaja",
"department" : "obchod",
},
"__v" : 0
}
我需要为下 一排的“答案”,例如每个值看js函数或查询 - obchod,manazer predaja,目前,...
我用这个:
db.getCollection('surveys').find().forEach(function(myDoc) { print("user: " +myDoc.answers.department, myDoc.answers.position, myDoc.answers.status,
,但我不想写所有的“答案”序列。
任何消耗?
非常感谢你 Stuli
您可以使用Object.keys
来获取对象的所有键在数组中。然后你可以映射它们来返回值。我觉得这个功能对你要找的内容:
db.surveys.find().forEach(function(doc) {
var answers = Object.keys(doc.answers).map(function(e) { return ' ' + doc.answers[e] });
print('user:' + answers);
})
只要你知道,你可以在JavaScript中使用的最新版本Object.values
。但它在MongoDB 3.4的JavaScript引擎中不可用。
非常感谢你,但这不是,我正在寻找。我需要functio,这将显示mi数据 –
你好,非常感谢,但这不是,我正在寻找。我需要功能来显示我的键值 - 例如! “状态”:“当前”值,我想看到只是“当前”,这意味着所有的键值。没有答案的钥匙。任何想法? –
哦,我在答案中犯了一个错误。一旦你有了密钥,你可以使用'doc.answers [e]'来获取地图内的所有值。我编辑了答案。它现在应该工作。 – tfogo
嘿,我添加了一个基于我认为你要求的答案。您应该确保格式化数据和代码,以便阅读。当事情格式清晰时,它使答案更容易。 – tfogo