您好我是MongoDB的新手。 我有6个像这样的对象:
{
"_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,current,...
我用过这个:
db.getCollection('surveys').find().forEach(function(myDoc) { print( "user: " +myDoc.answers.department, myDoc.answers.position, myDoc.answers.status,
但我不想写所有"答案"子序列。
任何sugestions?
非常感谢你 Stuli答案 0 :(得分:0)
您可以使用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引擎中不可用。