MongoDB で配列フィールドに一意の値または別の配列が含まれているかどうかを確認するにはどうすればよいでしょうか? 質問する

MongoDB で配列フィールドに一意の値または別の配列が含まれているかどうかを確認するにはどうすればよいでしょうか? 質問する

現在mongodbを使用しています。

ブログ投稿コレクションがあり、その中にtags配列のフィールドがあります。

blogpost1.tags = ['tag1', 'tag2', 'tag3', 'tag4', 'tag5']
blogpost2.tags = ['tag2', 'tag3']
blogpost3.tags = ['tag2', 'tag3', 'tag4', 'tag5']
blogpost4.tags = ['tag1', 'tag4', 'tag5']

これらの検索はどうすればできますか

  1. 含むtag1
  2. 含む['tag1','tag2']
  3. いずれかを含む['tag3', 'tag4']

ベストアンサー1

これを試してみてください:

db.blogpost.find({ 'tags' : 'tag1'}); //1
db.blogpost.find({ 'tags' : { $all : [ 'tag1', 'tag2' ] }}); //2
db.blogpost.find({ 'tags' : { $in : [ 'tag3', 'tag4' ] }}); //3

おすすめ記事