我有以下结构的文件:
{
"_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,
})
但是hidding(info.email:0)有效。是否有可能在不隐藏所有不需要的字段的情况下实现我的目标?
答案 0 :(得分:0)
除了关闭_id
(默认包含)之外,您不能混合包含和排除字段。
只需请求info.surname
和info.name
字段:
db.coll.find({ }, {
"_id" : 0,
"info.surname" : 1,
"info.name" : 1,
})
示例输出:
{ "info" : { "name" : "name", "surname" : "surname" } }