2017-09-26 138 views
0

你好,我是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

+0

嘿,我添加了一个基于我认为你要求的答案。您应该确保格式化数据和代码,以便阅读。当事情格式清晰时,它使答案更容易。 – tfogo

回答

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引擎中不可用。

+0

非常感谢你,但这不是,我正在寻找。我需要functio,这将显示mi数据 –

+0

你好,非常感谢,但这不是,我正在寻找。我需要功能来显示我的键值 - 例如! “状态”:“当前”值,我想看到只是“当前”,这意味着所有的键值。没有答案的钥匙。任何想法? –

+0

哦,我在答案中犯了一个错误。一旦你有了密钥,你可以使用'doc.answers [e]'来获取地图内的所有值。我编辑了答案。它现在应该工作。 – tfogo