我有一个用户集合,其架构如下:
var userSchema = new mongoose.Schema({
id : Number,
tags :
[
{
tag_name : String,
tag_url : String,
posts :
[
{
post_id: String
}
]
}
]
});
我想做的是只检索 post_id 值在帖子数组中的 tag_name 。所以,我尝试查询如下
db.users.find({'tags.posts.post_id':'000000'}, {'tags.tag_name':1})
不幸的是,尽管 post_id 不在帖子数组中,但我得到了所有 tag_name。
你能帮我写这个查询吗?
编辑================================================== =================
假设我有如下数据:
tags
[
{
tag_name: 'java',
posts : [{post_id:'000000'}, {post_id:'111111'}
},
{
tag_name: 'ruby',
posts : [{post_id:'000000'}, {post_id:'111111'}
},
{
tag_name: 'php',
posts : [{post_id:'111111'}
},
]
我想通过 post_id 获得标签元素,如果我按 post_id 搜索是 '000000' 我只想获得 tag_name 是 'java' 和 'ruby' 而不是最后一个标签元素的标签元素,这可能吗?