1. ホーム
  2. mongodb

[解決済み] MongoDBで配列のフィールドに一意な値や別の配列が含まれているかどうかを調べるには?

2022-05-02 18:11:36

質問

現在、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']

解決方法は?

試してみてください。

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