2012-04-11 63 views
0

我第一次冒险进入Mongo。请回答以下问题,以节省一些时间。这是架构。阵列查询并返回

"_id" : 1, 
    "FullName" : "Full Name", 
    "Email" : "[email protected]", 
    "FacebookId" : NumberLong(0), 
    "LastModified" : ISODate("2012-04-11T09:26:10.955Z"), 
    "Connections" : [{ 
     "_id" : 7, 
     "FullName" : "Fuller name", 
     "Email" : "[email protected]", 
     "FacebookId" : NumberLong(0), 
     "LastModified" : ISODate("0001-01-01T00:00:00Z") 
    }, 

    .... 

给定一个顶部用户的ID,我想返回所有电子邮件的连接阵列中,并且优选地,就在电子邮件。什么是查询字符串?多谢!

回答

1

您不能只从MongoDB中的子对象获取值。

如果你做这样的查询:

db.test.find({"_id": 1}, {"Connections.Email":1}); 

你会得到这样的回答:

{ 
    "_id": 1, 
    "Connections" : [ {"Email":"[email protected]"}, 
        {"Email":"[email protected]"} ] 
} 

这是你可以从MongoDB中一个简单的查询和字段选择得到最接近。

然后,您可以使用简单的foreach过滤出代码中的电子邮件值。

+0

好的,谢谢基督徒! – Martin 2012-04-11 20:24:35