0

我第一次冒险进入蒙戈。请回答以下问题,为我节省一些时间。这是架构。

"_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 数组中的所有电子邮件,最好只返回电子邮件。什么是查询字符串?非常感谢!

4

1 回答 1

1

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

如果您执行这样的查询:

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

你会得到这样的回应:

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

这是您可以通过 MongoDB 的简单查询和字段选择获得的最接近的结果。

然后,您可以使用简单的foreach.

于 2012-04-11T17:48:59.863 回答