首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB查询查找

MongoDB查询查找
EN

Stack Overflow用户
提问于 2017-09-26 21:06:27
回答 1查看 45关注 0票数 0

你好,我是MongoDB新来的。我有6个像这样的物体:

代码语言:javascript
复制
{
    "_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、current、.

我用这个:

代码语言:javascript
复制
db.getCollection('surveys').find().forEach(function(myDoc) { print( "user: " +myDoc.answers.department, myDoc.answers.position, myDoc.answers.status,

但我不想写所有的“答案”后续。

有什么建议吗?

非常感谢斯图丽

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-27 00:44:55

可以使用Object.keys获取数组中对象的所有键。然后,您可以对它们进行映射以返回值。我认为这个函数可以做你想要的:

代码语言:javascript
复制
db.surveys.find().forEach(function(doc) { 
  var answers = Object.keys(doc.answers).map(function(e) { return ' ' + doc.answers[e] });
  print('user:' + answers);
})

让您知道,您可以在最新版本的Object.values中使用JavaScript。但是它在MongoDB 3.4的JavaScript引擎中是不可用的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46435839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档