【发布时间】:2017-09-16 06:34:10
【问题描述】:
我试图在我的子文档查询中返回一个上一级的字段。我的架构是:
profile:{
contacts:[{
first_name:'Tom',
last_name:'Smith',
shared:[{
owner_id:'something',
other_data:'something'
}]
},
{
//.... more contacts
}]
}
如果我通过匹配“共享”子文档中的内容来编写查询以获取特定联系人,则我可以访问子文档中的字段。
我的问题是我想根据共享子文档中的 owner_id 搜索联系人,但我想返回上一级的“first_name”和“last_name”。
要查询子文档,我会执行以下操作:
db.profile.find({'contacts.shared':{ower_id:'something},{'first_name':1, 'last_name':1}})
不返回父级中的字段。
你如何提升一个级别来获得这些领域?
【问题讨论】:
-
“个人资料”是您文档中的字段名称吗?
-
个人资料就是文件
-
如果“个人资料”不是一个字段的名称,那么您应该将其从您的帖子中删除,同时考虑向我们展示预期的结果。
-
当它是文档名称时,为什么我要从帖子中删除它?我的原始帖子中描述了所需的结果。我想返回 ownder_id 匹配的联系人的名字和姓氏。
-
正如您在给您的答案中看到的那样,“个人资料”具有误导性。话虽如此,您对预期输出的描述尚不清楚。如果您真的需要答案,那么您应该考虑更新您的问题。
标签: mongodb mongoose mongodb-query