0

スキーマが次のようなユーザー コレクションがあります。

var userSchema = new mongoose.Schema({
  id : Number,
  tags                  : 
    [
      {
        tag_name : String,
        tag_url  : String, 
        posts    : 
          [
            {
                post_id: String
            }
          ]
      }                  
    ]
});

私がやりたいのは、post_id 値が posts 配列にある tag_name だけを取得することです。だから、私は次のようにクエリを試しました

db.users.find({'tags.posts.post_id':'000000'}, {'tags.tag_name':1})

残念ながら、post_id は posts 配列にありませんが、すべての 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' のタグ要素だけを取得したいのですが、可能ですか?

4

1 に答える 1