MongoDB显示子文档中并非所有元素



我有以下结构的文档:

{
  "_id" : ObjectId("50b8f881065f90c025000014"),
  "education" : {
    "schoolCountry" : 4,
    "schoolTown" : -1,
    "uniCountry" : 4,
    "uniTown" : -1
  },
  "info" : {
    "ava" : "auto.jpg",
    "birthday" : ISODate("1942-04-01T21:00:00Z"),
    "email" : "mail@gmail.com",
    "name" : "name",
    "sex" : 1,
    "surname" : "surname"
  }
}

我试图只输出姓氏和名字

我唯一能做到的就是:

db.COLL.find({ }, {
   "_id" : 0,
   "education" : 0,
   "info" : 1
})

我只显示子文档中需要的元素的想法失败了:

db.COLL.find({ }, {
   "_id" : 0,
   "education" : 0,
   "info.surname" : 1,
   "info.name" : 1,
})

但是隐藏(info.email:0)有效。是否可以在不隐藏所有不需要的字段的情况下实现我的目标?

除了关闭_id(默认包含)之外,您不能混合包含和排除字段。

因此,只需请求info.surnameinfo.name字段:

db.coll.find({ }, {
    "_id" : 0,
    "info.surname" : 1,
    "info.name" : 1,
})

示例输出:

{ "info" : { "name" : "name", "surname" : "surname" } }

相关内容

  • 没有找到相关文章