我第一次进入Mongo。回答以下问题,请节省一些时间。这是架构。
"_id" : 1,
"FullName" : "Full Name",
"Email" : "email@email.com",
"FacebookId" : NumberLong(0),
"LastModified" : ISODate("2012-04-11T09:26:10.955Z"),
"Connections" : [{
"_id" : 7,
"FullName" : "Fuller name",
"Email" : "connections@email.com",
"FacebookId" : NumberLong(0),
"LastModified" : ISODate("0001-01-01T00:00:00Z")
},
....
鉴于单个顶级用户的ID,我想返回Connections数组中的所有电子邮件,最好只返回电子邮件。什么是查询字符串?很有责任!
答案 0 :(得分:1)
您不能只从MongoDB中的子对象获取值。
如果你这样做一个查询:
db.test.find({"_id": 1}, {"Connections.Email":1});
你会得到这样的回应:
{
"_id": 1,
"Connections" : [ {"Email":"connections@email.com"},
{"Email":"foo@example.com"} ]
}
使用MongoDB中的简单查询和字段选择,这是最接近的。
然后,您可以使用简单的foreach
过滤掉代码中的电子邮件值。