首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回mongodb中的数组

返回mongodb中的数组
EN

Stack Overflow用户
提问于 2015-02-14 07:20:47
回答 1查看 62关注 0票数 3

我试图在下面的文档中返回数组的某些元素。

代码语言:javascript
复制
{
"_id": 2,
"awardAmount": 6000,
"url": "www.url.com",
"numAwards": 3,
"award": "Faculty Seed Research Grant",
"Type": "faculty",
"Applicates": [
    {
        "School": "psu",
        "Name": "tom",
        "URL": "www.url.com",
        "Time": "",
        "Research": "",
        "Budge": 7500,
        "appId": 100,
        "citizenship": "us",
        "Major": "mat",
        "preAwards": "None",
        "Advisor": ""
    },
    {
        "School": "ffff",
        "Name": "KEVIN",
        "URL": "www.url.com",
        "Time": "5/5/5-6/6/6",
        "Research": "topology",
        "Budge": 9850,
        "appId": 101,
        "citizenship": "us",
        "Major": "gym",
        "preAwards": "None",
        "Advisor": "Dr. cool",
        "Evaluators": [
            {
                "abstractScore": 3,
                "goalsObjectivesScore": 4,
                "evalNum": 1
            },
            {
                "abstractScore": 545646,
                "goalsObjectivesScore": 46546,
                "evalNum": 2
            }
        ]
    }
]
}

我只想要“应用程序”数据,如果他们有一个“评估”字段。以下是我所尝试的

代码语言:javascript
复制
db.coll.find({'Applicates.Evaluators':{'$exists': True }})

这给了我整个文档,但我只想要"Applicates“数据,其中包含”评估器“字段,如下所示。

代码语言:javascript
复制
{
"_id": 2,
"awardAmount": 6000,
"url": "www.url.com",
"numAwards": 3,
"award": "Faculty Seed Research Grant",
"Type": "faculty",
"Applicates": [
    {
        "School": "ffff",
        "Name": "KEVIN",
        "URL": "www.url.com",
        "Time": "5/5/5-6/6/6",
        "Research": "topology",
        "Budge": 9850,
        "appId": 101,
        "citizenship": "us",
        "Major": "gym",
        "preAwards": "None",
        "Advisor": "Dr. cool",
        "Evaluators": [
            {
                "abstractScore": 3,
                "goalsObjectivesScore": 4,
                "evalNum": 1
            },
            {
                "abstractScore": 545646,
                "goalsObjectivesScore": 46546,
                "evalNum": 2
            }
        ]
    }
]
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-14 07:59:22

试试这个(键是使用$unwind操作符)

代码语言:javascript
复制
db.coll.aggregate(
[
{ $match : {'Applicates.Evaluators':{'$exists': true }} },
{ $unwind : "$Applicates" },
{ $match : {'Applicates.Evaluators':{'$exists': true }} },
{ $group : { _id : "$_id", 
    'Applicates' : {$push : '$Applicates'} , 
    awardAmount : {$first : '$awardAmount'},
    url : {$first : '$url'},
    award : {$first : '$award'},
    numAwards : {$first : '$numAwards'},
    award : {$first : '$award'},
    Type : {$first : '$Type'},
    }},
])
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28513445

复制
相关文章

相似问题

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