数组查询并返回

时间:2012-04-11 16:00:50

标签: mongodb

我第一次进入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数组中的所有电子邮件,最好只返回电子邮件。什么是查询字符串?很有责任!

1 个答案:

答案 0 :(得分:1)

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

如果你这样做一个查询:

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

你会得到这样的回应:

{ 
  "_id": 1, 
  "Connections" : [ {"Email":"connections@email.com"}, 
                    {"Email":"foo@example.com"} ] 
}

使用MongoDB中的简单查询和字段选择,这是最接近的。

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